封装一个类,可以通过for循环直接打印指定范围内的质数
class IntegerRange():
def __init__(self,start,end,step=1):
self.start=start
self.end=end
self.step=step
def is_prime_number(self,n):
for i in range(2,n):
if n%i==0:
return False
return True
def __iter__(self):
while self.start<self.end:
if self.is_prime_number(self.start):
yield self.start
self.start+=self.step
r=IntegerRange(2,100)
for i in r:
print(i)
运行结果
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97