函数与lambda表达式
1.函数的创建。
1)语句块(block)
缩进是为了表明语句和逻辑的从属关系:
def function (arg1,arg2):
return 'something'
注意:
1,def(即定义)的含义是创建函数,也就是创建一个函数。
2,arg(即参数)有时还有这种写法:parameter.二者都是参数的意思,但前者为形参,后者为实参。
3,return 即返回结果。
例如:
def kg-g(g):
kg=1000*g
return str(kg)+'Kg'
注意:计算结果的类型是float,不能与字符串(Kg)连用,所以首先需用str()函数进行转换。
函数的调用
len()
lyric_length = len('I am so happy')
print(lyric_length)
同理有:
kg = kg_g(10)
print(kg)
将函数进行修改得:
def kg_g(g):
kg = g*1000
print(str(kg)+'Kg')
2.传递参数与参数类型
对于一开始就已经必要参数的函数来说,我们打出函数的名称并向括号中传递参数实现对函数的调用,只要把参数放进函数的括号即可:
kg_g(9)
kg_g(70)
传递参数的方式有:
位置参数
关键词参数
构造梯形面积函数:
def trapezoid_area(base_up,base_down,height):
return 1/2*(base_up+base_down)*height
接下来开始调用函数;
trapezoid_area(1,2,3)
或者是
trapezoid_area(base_up=1,base_down=2,height=3)
2.lambda表达式
lambda只是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于c或c++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lst = [4,5,6,7,8,9]
print(apply_to_list(sum,lst))
print(apply_to-list(len,lst))
print(apply_to_list(lambda n:sum(n) / len(n)))