Python生成器、實現斐波那契數列
阿新 • • 發佈:2019-01-02
Python生成器、實現斐波那契數列
""" 生成器 按照一定規則不斷產生新元素的物件 無法直接輸出生成器裡面的內容 生成器儲存的是資料的演算法/規則,每一次呼叫產生一個 生成器建立使用yield關鍵字 函式可以有返回值,返回值返回給呼叫者 yield 跟return功能類似, return直接返回直觀結果 yield返回給呼叫者的不是直觀結果,是資料存取的演算法、規則 可以使用next()函式呼叫生成器物件裡面的內容 也可以使用for 迴圈遍歷生成器物件 """
簡單的生成器
generator00 = (x for x in range(10))
print(generator00)
生成器函式
def get_generator(list00):
for i in list00:
yield i
list00 = [“炳鈿”, “京城”, “詩清”, “俊凱”, “惠玲”, “志鈺”,]
建立生成器物件
name_generator = get_generator(list00)
輸出生成器內容
# 使用next呼叫 print(next(name_generator)) print(next(name_generator)) print(next(name_generator)) print("la") print("la") print("la") print("la") print("la") print(next(name_generator)) # 使用for迴圈遍歷 for namein name_generator: print(name)
Python生成器實現斐波那契數列
斐波那契數列
a = 0 # 月份
b = 0 # 小兔子個數
c = 1 # 成年兔子
while a < 10:
b, c = c, b + c
print(b)
a += 1
呼叫函式
fib_generator = fib(10) print("*" * 20) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator)) print(next(fib_generator))
輸出結果:
********************
1
1
2
3
5
8
13
21