写一个实现迭代器协议的类Primes让此类可以生成从b开始的n个素数

xiaoxiao2021-02-28  45

class Primes:     @staticmethod     def __isprime(x):         for i in range(2, x):             if x % i == 0:                 return False         return True     def __init__(self, b, n):         self.begin = b         self.count = n     def __iter__(self):         self.cur_pos = self.begin         self.cur_count = 0         return self     def __next__(self):         if self.cur_count >= self.count:             raise StopIteration         self.cur_count += 1  # 计数加1         while True:             if self.__isprime(self.cur_pos):                 v = self.cur_pos                 self.cur_pos += 1                 return v             self.cur_pos += 1 for x in Primes(10, 4):     print(x)  # 11 13 17 19
转载请注明原文地址: https://www.6miu.com/read-2612599.html

最新回复(0)