迭代器有兩個基本的方法:iter()和next()。
字串,列表或元組物件都可用於建立迭代器:
a=['a','b','c','d','e']
b=iter(a)
for i in range(len(a)):
print(next(b))
這段**中b的型別為
在 python 中,使用了 yield 的函式被稱為生成器(generator)。
跟普通函式不同的是,生成器是乙個返回迭代器的函式,只能用於迭代操作,更簡單點理解生成器就是乙個迭代器。
在呼叫生成器執行的過程中,每次遇到 yield 時函式會暫停並儲存當前所有的執行資訊,返回 yield 的值, 並在下一次執行 next() 方法時從當前位置繼續執行。
呼叫乙個生成器函式,返回的是乙個迭代器物件。
以下例項使用 yield 實現斐波那契數列:
import sys
def fibonacci(n): # 生成器函式 - 斐波那契
a, b, counter = 0, 1, 0
while true:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是乙個迭代器,由生成器返回生成
while true:
try:
print (next(f), end=" ")
except stopiteration:
sys.exit()
python3自學之路 筆記4
python語言支援邏輯運算子,以下假設變數 a 為 10,b為 20 運算子邏輯表示式 描述例項 andx and y 布林 與 如果 x 為 false,x and y 返回 false,否則它返回 y 的計算值。a and b 返回 20。orx or y 布林 或 如果 x 是 true,它...
python3自學之路 筆記8
python 使用 lambda 來建立匿名函式。所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。lambda 函式的語法只包含乙個語句,如下 lambda arg1 arg2,argn expression呼叫函式時,如果沒有傳遞引數,則會使用預設引數。def run a,b 12...
python3快速自學筆記1
字母大小寫轉換 message hello world print message 單詞大寫轉換 title print message.title 單詞全部大寫轉換 upper print message.upper 單詞全部小寫轉換 lower print message.lower 刪除空白 ...