函数进阶,仅作了解
'''
函數(shù)進(jìn)階,僅作了解
'''
#可迭代對(duì)象與迭代器: # 可迭代對(duì)象: 含有__iter__方法叫做可迭代對(duì)象,除了數(shù)字類型,都是可迭代對(duì)象,可迭代對(duì)象使用__iter__變成迭代器 # 迭代器對(duì)象: 含有__iter__和__next__方法叫做迭代器對(duì)象,只有文件是迭代器對(duì)象,迭代器使用__iter__依然是迭代器 # 可迭代對(duì)象不一定是迭代器對(duì)象; 迭代器對(duì)象一定是可迭代對(duì)象 #三元表達(dá)式 x = 10 y = 20 print(x) if x > y else print(y) #列表推導(dǎo)式 lt = [i**2 for i in range(10)] print(lt) #字典生成式 dic = {i:i**2 for i in range(10)} print(dic) 或 lt1 = ['a', 'b', 'c'] lt2 = [1, 2, 3] dic = {k: v ** 2 for k, v in zip(lt1, lt2)} print(dic) #生成器表達(dá)式: #生成器: 本質(zhì)就是迭代器,生成器就是一個(gè)自定義的迭代器 #生成器:含有yield關(guān)鍵字的函數(shù)叫做生成器 #一個(gè)yield相當(dāng)于一個(gè)next; 暫停函數(shù)'''
yield與return的區(qū)別:
yield的特性:
1.暫停函數(shù) 2. 通過(guò)next取值
return的特性:
1.終止函數(shù)2. 通過(guò)調(diào)用函數(shù)拿到值
'''
#遞歸:傳遞 ; 回歸.函數(shù)a內(nèi)部直接調(diào)用函數(shù)a本身 # 每一次遞歸,不會(huì)結(jié)束函數(shù),并且每一次遞歸都會(huì)開(kāi)辟內(nèi)存空間,如果一直開(kāi)辟內(nèi)存就炸掉了,所以最多遞歸1000次 # 真正的遞歸必須得要有退出條件'''
遞歸:
1.函數(shù)內(nèi)部調(diào)用函數(shù)自己
2.必須要有退出條件
3.遞歸必須要有規(guī)律
'''
轉(zhuǎn)載于:https://www.cnblogs.com/jinhongquan/p/11580183.html
總結(jié)
- 上一篇: JAVA循环结构学校上机经常遇到的几题
- 下一篇: 匿名函数练习