Python 使用迭代器(不是生成器)显示具有上限和下限的素数
我得到了值,但它也打印了非素数值的“None”Python 使用迭代器(不是生成器)显示具有上限和下限的素数,python,python-3.x,Python,Python 3.x,我得到了值,但它也打印了非素数值的“None” 类素数: 定义初始值(自、n1、n2): self.n1=n1 self.n2=n2 定义(自我): 回归自我 定义下一个(自我): num=self.n1 self.n1+=1 对于范围内的x(2,num): 如果num%x==0: 打破 其他: 返回数 z=素数(30200) 对于z中的k: 印刷品(k) 结果: 没有一个 31 没有一个 没有一个 没有一个 没有一个 没有一个 37 没有一个 没有一个 没有一个 41 没有一个 43如果在P
类素数:
定义初始值(自、n1、n2):
self.n1=n1
self.n2=n2
定义(自我):
回归自我
定义下一个(自我):
num=self.n1
self.n1+=1
对于范围内的x(2,num):
如果num%x==0:
打破
其他:
返回数
z=素数(30200)
对于z中的k:
印刷品(k)
结果:
没有一个
31
没有一个
没有一个
没有一个
没有一个
没有一个
37
没有一个
没有一个
没有一个
41
没有一个
43如果在Python中的for/else循环中遇到
break
,则永远不会执行else
块。因此,默认情况下会返回None
。这几乎可以肯定是你犯错误的根本原因
您的函数可能如下所示:
def\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
num=self.n1
self.n1+=1
对于范围内的x(2,num):
如果num%x==0:
打破
返回数
(虽然现在我看了一下,for循环的应该是而循环,但我不确定您的逻辑是否正确)
如果在Python中的for/else循环中遇到中断
,则永远不会执行else
块。因此,默认情况下会返回None
。这几乎可以肯定是你犯错误的根本原因
您的函数可能如下所示:
def\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
num=self.n1
self.n1+=1
对于范围内的x(2,num):
如果num%x==0:
打破
返回数
(虽然现在我看了一下,for
循环的应该是而循环,但我不确定您的逻辑是否正确)