2017-5-16 函数

1.1

定义函数:

def greet_user():

  print (‘Hello the world‘)

执行函数: greet_user()

向函数传递参数:

def greet_user(username):

  print (‘Hello,‘ + username.title() + ‘!‘ )           .title()  首字母大写

greet_user(‘lucy‘)                         执行时括号里添加参数

def describe_pet(animal_type,pet_name):
‘‘‘显示宠物的信息‘‘‘
print("\nI have a " + animal_type + ‘.‘)
print("My " + animal_type + " name is " + pet_name.title() + ‘.‘)

describe_pet(‘hamster‘,‘harry‘)

describe_pet(‘dog‘,‘while‘)                                       调用先后顺序不能错

def describe_pet(animal_type,pet_name):

print(‘\n I have a ‘ + animal_type + ‘.‘)

describe_pet(animal_type=‘hamster‘,pet_name=‘dog‘)                   关键字实参

1.2 默认值

编写函数时,可给每个形参制定默认值。调用函数时,给形参提供实参时,python将使用指定的实参,否则,将使用形参的默认值。

def greet_user(username=‘lucy‘):
print (‘hello‘)
greet_user()

2.1返回值

def get_formatted_name(first_name,last_name):
full_name = first_name + ‘ ‘ + last_name
return full_name.title()                                                  return将full_name 的值返回给函数get_formatted_name

musician = get_formatted_name(‘zn‘,‘zjy‘)

print(musician)

2.2 让实参变成可选的

def get_formatted_name(first_name,last_name,middle_name=‘‘):
if middle_name:
full_name = first_name + ‘ ‘ + middle_name + ‘ ‘ + last_name

else:
full_name = first_name + ‘ ‘ + last_name

return full_name.title()

musician = get_formatted_name(‘zn‘,‘zzz‘)
print(musician)
musician = get_formatted_name(‘zn‘,‘zzx‘,‘zjy‘)
print(musician)

3.1返回字典

函数可返回任何类型的值,包括列表和字典等比较复杂的数据结构

def build_person(first_name,last_name):
person = {‘first‘:first_name,‘last‘:last_name}
return person

musician = build_person(‘zn‘,‘zzx‘)
print(musician)

def build_person(first_name,last_name,age):
person = {‘first‘:first_name,‘last‘:last_name}
if age:
person[‘age‘] = age
return person

mulition = build_person(‘zn‘,‘zzx‘,‘29‘)
print(mulition)

结合使用函数和while循环:

def get_formatted_name(first_name,last_name):
full_name = first_name + ‘ ‘ + last_name
return full_name.title()

while True:
print(‘\nPlease tell your name:‘)
print("enter ‘q‘ at any time to quit")

f_name = input(‘first name:‘)
if f_name ==‘q‘:
break

l_name = input(‘last name:‘)
if l_name == ‘q‘:
break

formatted_name = get_formatted_name(f_name,l_name)
print(‘\nHello,‘ + formatted_name + ‘!‘)

传递任意数量的实参:

def make_pizza(*toppings):
print(toppings)

make_pizza(‘pepperoni‘)
make_pizza(‘zxc‘,‘dsa‘,‘das‘)               函数只有一个形参*topping,不管提供多少个实参,这个形参豆浆它们统统收入囊中

形参名*topping中的星号让python创建一个名为topping的空元祖,并将值封装到这个元祖中

def make_pizza(*toppings):
print(‘\nMaking a pizza with the following toppings:‘)
for topping in toppings:
print ("-" + topping)
make_pizza(‘pep‘)
make_pizza(‘5‘,‘4‘,‘3‘,‘2‘,‘1‘)

时间: 2024-10-10 18:46:04

2017-5-16 函数的相关文章

2017年1-6月流水帐

2017年 1月 ======================================== 2日,实现C++,AOB(Array of Byte)字节数组文件扫描,类似CheatEngine的AOB内存,只不过我扫的是硬盘文件,如某文件包含16进制特征码AA BB CC DD 11 33 58 99就可以扫出来,可以简单的对某类文件,比如bmp,dds,ogg之类的, 直接序列化打包的文件进行扫描,不知道有没有什么类似的软件,反正自己写了个,WinHex可以单个文件扫,但是没有批量扫描功

2017.1.16 进度 项目4开头

今天的大部分时间都用在想UI怎么设计以及,如何把button放在title bar上,结果后者怎么也实现不了,于是只好先放弃在这次的这个音乐播放半成品里面使用了. 其实想想也是,这次的主要考察对象是activity之间的转换,我总是把它的重点跑偏-- 放上代码存个档: activity_main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android=&q

2017.4.16

php数组 $arr = array(1,1,2,2,3,4,5);$arr1 = array("one"=>"111","two"=>"222"); //强类型语言:1.数组里面只能存储相同数据类型的数据,2.数组的长度固定,3.在内存里面是连续的 //unset($arr[2]); //删除数组元素//$arr[2] = 10; //添加元素//$arr[] = 10; //追加元素//array_push($

2017/03/16学习笔记

//void oper(int a,int b) const ;==>void oper(const className* const this,int a,int b); 运算符重载 所谓重载,就是重新赋予新的含义.函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同的功能函数,也就是一名多用.运算符也可以重载.实际上,我们已经不知不觉中使用了运算符重载.如,大家都习惯用加法运算符"+"对整数.浮点数进行加法运算 5+8.5.8+3.67

2017.4.16 StringBuilder &amp; StringBuffer关键源码解析

String.StringBuilder.StringBuffer的异同点 结合之前写的博文,我们对这三个常用的类的异同点进行分析: 异: 1>String的对象是不可变的:而StringBuilder和StringBuffer是可变的. 2>StringBuilder不是线程安全的:而StringBuffer是线程安全的 3>String中的offset,value,count都是被final修饰的不可修改的:而StringBuffer和StringBuilder中的value,cou

2017.3.16 上午

高数第一章函数与极限章节结束,对该章节进行了复习并做了部分课后复习题.

2017.2.16 开涛shiro教程-第十七章-OAuth2集成

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介绍 (1)应用场景 很多开放平台,比如新浪微博开放平台,都在使用开发API接口供开发者使用.即带来了,第三方应用要到开放平台授权的问题.OAuth就是做这个的. 1 OAuth2官网:http://oauth.net/2/ 2 OAuth2协议:http://tools.ietf.org/html/

2017.8.16

一.PHP 数据库 ODBC ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库). 1.创建 ODBC 连接 通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的. 这是创建到达 MS Access 数据库的 ODBC 连接的方法: 在控制面板中打开管理工具图标. 双击其中的数据源(ODBC)图标. 选择系统 DSN

2017.7.16学习笔记

Google 超分辨率技术 RAISR 全称是“Rapid and Accurate Image Super-Resolution”,意为“快速.精确的超分辨率技术”. 利用机器学习,把低分辨率图片转为高分辨率图片 效果能达到甚至超过现在的超分辨率解决方案,同时速度提升大约 10 至 100 倍,且能够在普通的移动设备上运行.而且,Google 的技术可以避免产生混叠效应(aliasing artifacts). 低分辨率图片重建为尺寸更大.像素更多.更高画质图片的技术:升采样方式:对于 RAI

2017/3/8 函数指针/事件/委托....

函数指针: 定义:函数指针是指向函数的指针变量. 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数. 函数指针有两个用途:调用函数和做函数的参数. 例:int function(int c);  //声明一个函数 int (*funcPoint)(int c);  //声明一个函数指针 funcPoint = function;   //将function函数的首地址赋给funcPoint指针   //或者