对于另一个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循环。当我运行这个程序时,它的输入如下:第一个是循环,另一个是循环,第二个是循环,等等。为什么它第一次跳到其他地方?此外,如果我要求第1000个号码,我得到: 7919和
for i in range(2, p)和7907与
for i in range(2, p/2).为什么会这样呢?希望您能在这方面帮助我,但请不要给出其他实现素数算法的方法!
发布于 2014-02-20 15:53:24
Python的range不包括结束值。
range[start, end)因此,在第一次迭代中,p的值为2,而range(2, 2)是一个空列表。这就是为什么输入其他部分的原因。
print range(2, 2) # []https://stackoverflow.com/questions/21912835
复制相似问题