以下所有的实操全在redhat7.3真机上pycharm
高阶函数
高阶函数(Higher-order function)
-实参是一个函数名
-函数的返回值是一个函数
def fun(item1,item2):
return item1 + item2
a = fun(8,5)
print(a)
#abs()求取绝对值;
print(abs(-11))
f =abs
#变量可以指向函数
#abs是函数本身,它也可以赋值给变量,而变量f可以指向abs函数本身,
#那么直接用abs()函数和调用变量f()完全相同;
#结论:函数本身也可以赋值给变量,即:变量可以指向函数。
#函数名也是变量
#函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,
#它指向一个可以计算绝对值的函数
print(f(-7))
#传入函数:
#既然变量可以指向函数,函数的参数能接收变量,
#那么一个函数就可以接收另一个函数作为参数;这种函数就称之为高阶函数。
#传递的参数包括函数名
def func(x,y,f):
return f(x),f(y)
print(func(-10,24,abs))
内置高阶函数map()函数
map()函数接收两个参数,一个是函数,一个是序列
map将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回
代码:
import random
#序列[-1,2,-3,4]的每个元素求绝对值
print(list(map(abs,[-1,2,-3,4])))
#对于序列的每个元素求阶乘(10个2~9之间的随机数)
def f(x):
res = 1
for i in range(1,x+1):
res *= i
return res
li = [random.randi