我有一些关于另一个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