一、定义函数
基本结构:
def <函数名称>(参数...):
<表达式>
..
>>> def add(x, y):
...
print(x + y)
>>> add(2, 4)
6
值得注意的是,函数名也是变量,也可以使用赋值语句,将自己的函数表达式赋值给另一个变量。相当于给自己取了一个别名,两个变量指向同一个函数表达式,都可以被调用。
>>> def add(x, y):
... print(x + y)
...
>>> new_add = add
>>> new_add(3, 4)
7
二、return 语句
返回函数操作的结果(可以使任何类型数据)给调用处
>>> def add(x, y):
... return x + y
...
>>> sum = add(2, 6)
>>> sum
8
三、定义函数的更多要点
1、使用默认参数
>>> def add(x, y=0):
... return x + y
...
>>> sum = add(10)
>>> sum
10
2、关键字参数
之前使用的print() 函数就是一个含有关键字参数的函数,在调用时只需要对需要修改的属性进行赋值,其余的直接使用默认值。
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
3、可变参数
使用 * 号接收未知数量参数(列表):
>>> def add(*nums):
...
sum = 0
...
for num in nums:
...
sum += num
...
return sum
...
>>> sum = add(1, 2, 3, 4, 5)
>>> sum
15
使用 ** 接收字典:
>>> def info(**keys):
...
for key in keys:
... print(key, keys[key])
...
>>> info(name='Stanley', location='China')
name Stanley
location China
四、lambda 定义匿名函数
pass
还没怎么看懂!(悲啊,之前Java8的lambda就看懂,可能与lambda无缘。)