eval 和 exec 函數
?????首先說一下 這兩個函數的返回值是可以讓程序執(zhí)行的函數
????eval()返回的是一個表達式 如eval('1+2') #3
????而exec 返回的是一條可執(zhí)行的是一條語句
????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]
明天復習一下快速排序