函数:
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:)()
来源:http://my.oschina.net/chape/blog/123510