建立generator,第一種方法很簡單, 只要把乙個列表生成式的改成
()
,就建立了乙個generator:
>>> l = [x * x for x in range(10)]>>> l
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))
>>> g
at 0x1022ef630>
定義generator的另一種方法。如果乙個函式定義中包含yield
關鍵字,那麼這個函式就不再是乙個普通函式,而是乙個generator:
def fib(max):n,a,b = 0,0,1
while n < max:
#print(b)
yield b
a,b = b,a+b
n += 1
return 'done'
generator和函式的執行流程不一樣。函式是順序執行,遇到return
語句或者最後一行函式語句就返回。而變成generator的函式,在每次呼叫next()
的時候執行,遇到yield
語句返回,再次執行時從上次返回的yield
語句處繼續執行。
Python學習筆記 Day4
4.1 類和物件 1.定義類 class 類名 class televison 定義乙個電視機 defwatch self print watching 這個電視機能看電視 2.建立物件 物件名 類名 sony televison 索尼這個牌子的電視機 使用watch功能 物件名.watch son...
Python學習筆記 Day4
在python中,and和or的用法有點奇怪,不想c 中的位運算和邏輯判斷公用 和 倘若兩側都為真,則返回右側的值,否則返回假 倘若兩側都為真,則返回左側的值,否則返回假 在c 中有形如?的三目運算子,然而在python中,三目運算是使用if和else達成的,例如 a if a b else b表達...
DAY4學習筆記
流程控制的三種語法 if 用於判斷條件,為了讓計算機可以像人一樣,具有判斷的能力。1 當運用if語法時,如果滿足條件則執行某程式,可以和else連用,即反之則執行另一程式。2 if可以和elif進行多分支使用,多分支時,一旦有某一條件滿足,則不繼續執行其他條件。3 if語句的巢狀,當滿足某一條件時,...