下面是在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
答案 0 :(得分:2)
答案 1 :(得分:0)
Python允许您为else
语句指定for
块。
else
块在for
之后执行,但仅,如果for
正常终止(而不是中断)。
如果没有此功能,您必须使用无关的标志变量来跟踪此状态。因此,在您的情况下,如果else
永远不为真,则会执行(candidate % x == 0)
块。