我有一些關於另一個for循環for-else循環的問題。所以這裏有一個例子:ForElse循環在另一個For循環
primelist = []
for p in range (2, x+1):
print 'in first for'
raw_input()
for i in range(2, p):
print 'in second for'
if p%i == 0:
print 'in if'
raw_input()
break
else:
print 'in else'
raw_input()
primelist = primelist + [p]
return primelist
正如你看到的,這是確定的素數,並將它們存儲到一個列表,使他們可以在以後檢索。所以我的問題是第一個循環。當我運行程序時,它會像這樣進入:第一個FOR循環,ELSE,第一個FOR循環,第二個FOR循環等等。爲什麼第一次跳到ELSE? 另外,如果我問的第1000號我得到:7919與
for i in range(2, p)
和7907與
for i in range(2, p/2).
這是爲什麼? 希望你能幫我解決這個問題,但請不要給其他方法來實現Prime數字算法!
正如您所寫,此代碼有語法錯誤。您是否想要將'else'語句(及其子語)縮進爲與'if'語句內聯? – Hooked
@Hooked您可以在Python中使用'else' a'for'。如果循環終止而沒有「中斷」,則輸入條件。 –
@SilasRay哇,我沒有意識到這一點。我的錯誤BlackTM。我會將我的評論留給其他人學習。 – Hooked