函数
函数的创建和调用
创建函数
def functionname([parameterlist]):
['''comments''']
[functionbody]
例:
>>> def aaa():
... '''aaa bbb cccddd '''
... pass
...
>>>
>>> aaa.__doc__
'aaa bbb cccddd '
如果函数中使用‘’‘xxx’’'写了comment,可以通过 funcname.__doc__读取,或者通过help(funcname)来读取,以此获取函数功能等一些信息
调用函数
functionname([parametersvalue])
参数传递
def fun_bmi(person, height, weight):
pass
位置参数
fun_bmi(“路人甲”, 1.80, 60) #一般形式
关键字参数
fun_bmi(height = 1.80, weight = 60, person = “路人甲”)
可以无视参数顺序
为参数设置默认值
指定默认的参数必须在所有参数的最后
def fun_bmi(height, weight, person = "路人甲"):
pass
fun_bmi(1.80, 60)
可以使用func.__defaults__查看函数的默认值
>>> fun_bmi.__defaults__
('路人甲',)
可变参数
两种形式:
*parameter
**parameter
*parameter
表示接收任意多个实际参数并将其放到一个元组中
例:
>>> def printcoffee(*coffeename):
... for item in coffeename:
... print(item)
...
>>> printcoffee("a")
a
>>> printcoffee("a","b","c")
a
b
c
>>> printcoffee(["a","b","c"])
['a', 'b', 'c']
>>>
**parameter
表示接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中
例:
>>> def printsign(**sign):
... for key,value in sign.items():
... print(key,value)
...
>>> dict1 = {'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4}
>>> printsign(**dict1)
a 1
b 2
c 3
d 4
>>>
返回值
return [vaule]
可以返回多个值
变量作用域
局部变量
略
全局变量
定于在函数外
略
定义在函数内
使用global关键字
匿名函数
result = lambda[arg1 [, arg2, ..., argn]]:expression
使用lambda,参数可以有多个,但是返回值只能有一个,且不能有for,while等其他非表达式语句
例:
>>> import math
>>> r = 10
>>> result = lambda r : math.pi * r * r
>>> result
<function <lambda> at 0x00000201B869E4C0>
>>> result(r)
314.1592653589793
>>>