【发布时间】:2014-03-21 16:37:46
【问题描述】:
我对另一个 for 循环中的 for-else 循环有一些疑问。所以这里是一个例子:
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 循环。当我运行程序时,它会像这样进入:第一个 FOR 循环、ELSE、第一个 FOR 循环、第二个 FOR 循环等等。为什么它第一次跳到 ELSE? 此外,如果我要求我得到的第 1000 个号码:7919 与
for i in range(2, p)
和7907搭配
for i in range(2, p/2).
这是为什么呢? 希望你能帮我解决这个问题,但请不要给出其他实现质数算法的方法!
【问题讨论】:
-
如您所写,此代码存在语法错误。您的意思是缩进
else语句(及其子语句)以与if语句内联吗? -
@Hooked 你可以在 Python 中使用
else和for。如果循环在没有breaking 的情况下终止,则进入条件。 -
@SilasRay 哇,我没有意识到这一点。我的错误 BlackTM。我会留下我的评论供其他人学习。
标签: python algorithm program-structure for-else