簡體   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