eval 和 exec 函数
首先说一下 这两个函数的返回值是可以让程序执行的函数
eval()返回的是一个表达式 如eval('1+2') #3
而exec 返回的是一条可执行的是一条语句
exec(“print('hello,world')”) #hello world
联合起来举个例子
x = 100
y = 100
s ='x+y'
eval(s) #200
exec(s,{'x':10,'y':20} #30
exec(s,{'x':10}) #110
exec(s,{'x':200},{'x':10,'y':30}) #40
函数是一等公民
函数本身可以赋值给变量,赋值后可以绑定函数
允许函数返回另一个函数
允许函数作为参数传入另一个参数
函数的可重入性
可重入性是指一个函数传入一定的参数,则结果一定
高阶函数:
什么是高阶函数?
满足下面的某一个条件即可作为高阶函数
函数作为参数传入另一个函数
函数返回一个函数
python 中内建的高阶函数
map函数:
map(func,*iterables)用函数可迭代对象的每一个元素作为参数计算出新的可迭代对象,当最后一个可迭代对象不提供数据时,此可迭代对象生成结束
示例;
def p(x)
return x**2
L = [i for i in map (p,range(3))] #0 1 4
filter 函数
filter(函数,可迭代对象)
作用:筛选可迭代对象iterable的数据,返回一个可迭代对象,此可迭代对象对iterable进行筛选
说明:函数func将对每个元素进行求值,返回False 则丢弃,返回True则保留
示例:
def p(x):
return False if x%2!=0 else True
L = [i for i in filter(p,range(5))] #0 2 4
sorted 函数
作用对可迭代函数进行排序
格式:
sorted(itertable,key = None,reverse = False)
说明;
itertable 是可迭代对象
key 是作为排序的依据
reverse 是反转, 默认从小到大
>>> L = [1,2,3,-4,-5]
>>> def p(x):
... return -x
...
>>> sorted(L,key=p)
[3, 2, 1, -4, -5]
明天复习一下快速排序