1 定义:
def function_name(parameter):
""" annotation or doc"""
expresssion
return something
- 实参按值调用传递
- 即使没有
return
语句,函数最终也会有返回值,返回值为内置类型None
斐波那契数列
def fib(n):
"""print a Fibonacci series up to n."""
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(2000)
函数默认参数值在函数定义时计算
i = 5
def f(arg = i):
print(arg)
i = 6
f()
# this function will print 5
>>> 5
默认值只会执行一次
def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
# result
>>>[1]
>>>[1, 2]
>>>[1, 2, 3]
如果不想共享默认值,可作如下调整,参考
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
任意参数列表,参数被放入tuple中,形参加 *
def write_multiple_items(file, separator, *args):
file.write(separator.join(args))
解包参数列表 参考
Lambda 表达式
创建匿名函数
lambda parameters: expression
例如
>>>pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>>pairs.sort(key=lambda pair:pair[1])
二维list取第一位
list_A = [[1,2],[3,4],[5,6]]
# 获取[1,3,5]
list_b = [a[0] for a in list_A]