python使用生成器實現可迭代物件

2022-09-29 12:39:12 字數 836 閱讀 1890

案例分析:

實乙個可迭代物件的類,它能迭代出給定範圍內所有的素數:

&nbjhzcgehhlsp;         pn = number(1, 30)

for k in pn:

print(k)

結果為:2,3,5,7,11,13,17,19,23,29

如何解決這個問題?

將該類的__iter__方法實現成生成器函式,每次yield返回乙個素數

#!/usr/bin/python3

class number(object):

def __init__(self, start, end):

self.start = startwww.cppcns.com

self.end = end

# 判斷乙個數字是否是素數

def get_num(self, k):

if k >= 2:

for i in range(2, k):

if k % i == 0:

return false

return true

def __iter__(self):

for k in range(self.start, self.end+1):

if self.get_num(k):

# 是素數yield出去

yield jhzcgehhlk

if __name__ == '__main__':

num = number(2, 30)

for i in num:

print(i)

本文標題: python使用生成器實現可迭代物件

本文位址:

python中生成式和生成器 迭代器與可迭代

標籤 python 比如a 1,2,3 如果想生成乙個b裡面存的是a的2倍,則可以使用 2 i for i in a 上面通過生成式雖然可以生成乙個列表,但是如果我們列表過於大,可能一次儲存不下,所以便有了生成器這個說法。生成器你可以把他看做乙個方法,每次使用一下它,他就能幫你按照你的規則生成乙個數...

python如何使用生成器函式實現可迭代物件

實際案例 實現乙個可迭代物件的類,它能迭代出給定範圍內所有素數 pn primenumbers 1,30 for k in pn print k輸出結果為 2 3 5 7 11 13 17 19 23 29解決方案 將該類的 iter 方法實現成生成器函式,每次yield返回乙個素數。有了解決方案後...

python迭代 如何使用生成器函式實現可迭代物件

問題舉例 實現乙個可迭代物件的類,它能迭代出給定範圍內 的所有素數 pn primenumbers 1,30 for x in pn print x 輸出結果 2 3 5 7 11 13 17 19 23 29 將該類的 iter 方法實現成生成器函式,每次用yield返回乙個素數 from col...