繁体   English   中英

python素数生成

[英]python prime number generation

下面是在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

else属于for循环

如果您阅读了Python doc ,其源代码,您还将在其中找到相应的说明。

您可以将其读为“如果主循环无一例外地完成,应执行的操作”。

Python允许您为for语句指定else块。

else块的之后执行for ,但只有for正常结束(未通过中断)。

如果没有此功能,则必须使用无关的flag变量来跟踪此状态。 因此,在您的情况下,如果永不执行true (candidate % x == 0) ,则将执行else块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM