python學習(2)yield函式

2021-10-06 12:23:44 字數 573 閱讀 7537

生成器函式類似乙個工廠,你說要5個產品,它會在所有產品生成好返回給你,而不是生成乙個返回乙個,這樣相比return函式在記憶體使用和效能方面都會比較好。

def gensquares(n):

for i in range(n):

yield i**2

#print(list(gensquares(5))) 列印返回是乙個list表名一次就返回所有結果

for i in gensquares(5):

print(i,end=':')

def gensquares2(n):

return i**2

print('')

for i in range(0,5):

print(gensquares2(i),end=':')

上面兩個函式雖然都用了for迴圈呼叫,但是gensquares(5)只呼叫了一次,而gensquares2(5)呼叫了5次。執行結果:

Python學習筆記 2 判斷str型別的函式

相信大家都喜歡表情包吧 話說學習python一定要堅持,持之以恆,萬事開頭難嘛 哈哈,稍微皮一下 經過整理 1 isdigit 判斷 str 是否為數字 i 123 print i.isdigit if i.isdigit print yes 輸出結果為 true yes2 isalpha 判斷 s...

Python基礎學習之六yield

協程的底層架構是在pep342 中定義,並在python2.5 實現的。python2.5 中,yield關鍵字可以在表示式中使用,而且生成器api中增加了 send value 方法。生成器可以使用.send 方法傳送資料,傳送的資料會成為生成器函式中yield表示式的值。協程是指乙個過程,這個過...

Python 學習筆記 enumerate函式

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。seasons spring summer fall winter list enumerate seasons 0,spring 1,summer 2,f...