python基础学习3(函数)

函数:

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

原文地址:https://www.cnblogs.com/94julia/p/3052478.html