函数:
def 函数名(参数列表):
函数体
函数默认返回值为None
向函数传元组和字典:
fun(*args)//传元组,需要一一对应
fun(**args)//传字典,需要一一对应
处理多余参数:
def fun(*args,**args)
1 |
#!/usr/bin/python |
2 |
def fun(x, * args, * * dargs): |
3 |
print x |
4 |
print args |
5 |
print dargs |
6 |
fun( 1 , 2 , 3 , 4 , 5 ,y = 20 ,z = 30 ) |
7 |
输出: 1 |
8 |
( 2 , 3 , 4 , 5 ) |
9 |
{y: 20 ,z: 30 } |
lambda表达式:
def fun(x,y):
print x*y
对应的lambda表达式为:g = lambda x,y:x*y//冒号前是参数,冒号后是返回值,整个lambda表达式返回一个函数对象
lambda的应用——阶乘:
01 |
#!/usr/bin/python |
02 |
l = range ( 1 , 6 ) |
03 |
04 |
def f(x,y): |
05 |
return x * y |
06 |
07 |
reduce (f,l) / / 返回 120 ,将 1 * 2 赋给x,再将 3 赋给y…… |
08 |
09 |
对应 lambda 表达式: reduce ( lambda x,y:x * y, range ( 1 , 6 )) |
10 |
11 |
def f(n): |
12 |
if n> 0 : |
13 |
return n * f(n - 1 ) |
python没有switch语句,但是可以使用字典和函数结合来实现
上面等价于:{1:case1,2:case2}.get(x,lambda *args,**dargs:)()