递归函数
v1>什么是递归函数
通过前面的学习知道一个函数可以调用其他函数。
如果一个函数在内部不调用其它的函数,而是自己本身的话,这个 函数就是递归函数。
v2>递归函数的作用
举个例子,我们来计算阶乘n! =1*2*3* ..
python在编写一些执行脚本的时候可以使用lambda,这样可以接 受定义函数的过程,比如写一个简单的脚本管理服务器。
应用场合
函数作为参数传递
>>> def fun(a, b, opt):. print("a = " % a)...
print("b = " % b)... print("result =" % opt(a, b))
...>>> add = lambda x,y:x+y>>> fun(l, 2, add) # 把 add
作为实参传递
a = 1
b = 2
result = 3
练习:
有一个列表
students =[
{'name': 'zhangsan', ' age': 18, 'score': 92},
{'name': 'lisi', 'age': 20, 'score': 90},
('name': 'wangwu', 'age': 19, 'score': 95},
('name': ,jerry', 'age': 21, 'score': 98},
{'name': 'chris', 'age': 17, 'score': 100}, ]
要求,对上述列表里的数据按照score进行升序排序。 Python中使用函数作为参数的内置函数和类:
函数名或
类名
功能
参数描述
sorted 函
数
用来将一个无序列表进行排序
函数参数的返回隹
照元素的哪个属世 序
filter 类
用来过滤一个列表里符合规定的所有元素,得到
的结果是一个迭代器
函数参数的返回隹
素满足的过滤条1
map类
将列表里的每一项数据都执行相同的操作,得到
的结果是一个迭代器
函数参数用来指贷
元素所执行的操勺
reduce 函
数
对一个序列进行压缩运算,得到一个值。
python3以后,这个方法被移到了 functools模
块
函数参数用来指贷
照哪种方式合并
高阶函数
在Python中,函数其实也是一种数据类型。
def test():
return 'hello world'
print(type(test)) # <class 'function'>
函数对应的数据类型是function,可以把它当做是一种复杂的数据 类型。
既然同样都是一种数据类型,我们就可以把它当做数字或者字符串 来处理。
定义一个变量指向函数 在Python中,我们还可以定义一个变量,让它来指向一个函数, 相当于给函数起了一个别名。
def test():
return 'hello wrold'
fun = test #定义了一个变量fun,让它指向了 test这个函
数
print(fun()) #使用千un()可以直接调用test这个函数
print(id(fun)) # 18**********
print(id(test)) # 18**********
注意:在定义一个变量表示一个函数时,函数后面不能
加括号!加括号表示的是调用这个函数。
def test():
return 'hello world
result = test() #这种写法是调用test函数,并把函数的返
回值赋值给result变量
print(result()) TypeError: 'str' object
is not callable
fun = test #这种写法是给test函数起了一个别名,注意, 这里的test后面不能加()
fun() #可以使用别名调用这个函数
高阶函数
既然变量可以指向函数,函数的参数能接收变量,那么一个函数就 可以接收另一个函数作为参数,同样,我们还可以把一个函数当做 另一个函数的返回值。这种函数的使用方式我们称之为高阶函数。
函数做为另一个函数的参数
def test(age?action):
if age < 18:
print('您还没满十八岁,请退出,)
action() #把参数action直接当做一个函数来调用
def smoke():
print('我已经年满十八岁了,我想抽烟’)
my_action = smoke # 定义一个变量my_action, 让它指向 smoke函数
test(21, my_a
python高阶函数心得笔记,python高阶函数知识 来自淘豆网m.daumloan.com转载请标明出处.