下面是用python打印n个素数的代码。这个程序运行良好,但我想知道控制流程而else语句与它以前的if条件不匹配。如果我尝试将其与if条件对齐,则执行将抛出错误。这里到底发生了什么。
candidate = 3
count = 2
#n is the number of prime numbers to be printed.
n = 10
print("2")
while(count < n):
for x in range(2, candidate):
if(candidate % x == 0):
break
else:
print(str(candidate))
count +=1
if(count <= n):
candidate+=1
最佳答案
Python允许您为else
语句指定for
块。else
块在for
之后执行,但前提是for
正常终止(而不是中断)。
如果没有这个特性,就必须使用一个无关的标志变量来跟踪这个状态因此,在您的情况下,如果else
不是真的,(candidate % x == 0)
块将被执行。
关于python - python素数生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24831330/