Python迭代器實現斐波那契數列

2021-09-26 15:52:43 字數 1385 閱讀 5142

python 處理 for 迴圈時,首先會呼叫 something.__iter__(),返回 something 對應的迭代器(假設叫 it);而後,for 迴圈會呼叫 it.__next__(),獲取迭代器的下乙個元素,並賦值給 x,然後執行迴圈體;執行完後,for 迴圈會繼續呼叫 it.__next__(),獲取迭代器的下乙個元素,並賦值給 x,執行迴圈體 …… 當 for 迴圈呼叫 it.__next__()產生 stopiteration 異常時,迴圈結束;

當程式出現錯誤,python會自動引發異常,也可以通過raise顯示地引發異常。一旦執行了raise語句,raise後面的語句將不能執行。

class foo:

def __init__(self,x):

self.x = x

def __iter__(self):

return self

def __next__(self):

if self.x == 10:

raise stopiteration("程式終止")

self.x += 1

return self.x

f1 = foo(7)

# print(f1.__next__()) #8

# print(f1.__next__()) #9

# print(f1.__next__()) #10

# print(f1.__next__()) #stopiteration: 程式終止

for i in f1:

print(i)

#for迴圈列印結果:

# 8# 9

# 10

class fib:

def __init__(self):

self.a = 1

self.b = 1

def __iter__(self):

return self

def __next__(self):

if self.a > 80:

raise stopiteration("程式終止")

self.a,self.b = self.b,self.a+self.b

return self.a

f1 = fib()

for i in f1: # a>80程式就終止;

print(i)

# 列印結果:

# 1# 2

# 3# 5

# 8# 13

# 21

# 34

# 55

# 89

python迭代器實現斐波那契數列

什麼是迭代器,作用是什麼。迭代器實現斐波那契數列。1.概念 從容器中取資料的工具就是迭代器 游標 2.作用 可以節省大量的記憶體空間 0,1,1,2,3,5,8,13,21,34 初始值 a 0 b 1 游標 當前數值 index 0 斐波那契數列最大數量為 num num根據需求建立乙個類 cla...

迭代器實現斐波那契數列

class fibiterator object 斐波那契數列迭代器 def init self,n param n int,指明生成數列的前n個數 self.n n current用來儲存當前生成到數列中的第幾個數了 self.current 0 num1用來儲存前前乙個數,初始值為數列中的第乙個...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...