首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个For循环中的For-Else循环

在另一个For循环中的For-Else循环
EN

Stack Overflow用户
提问于 2014-02-20 15:51:06
回答 1查看 197关注 0票数 1

对于另一个for循环中的for-else循环,我有一些疑问。下面是一个例子:

代码语言:javascript
复制
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和

代码语言:javascript
复制
for i in range(2, p)

和7907与

代码语言:javascript
复制
for i in range(2, p/2).

为什么会这样呢?希望您能在这方面帮助我,但请不要给出其他实现素数算法的方法!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 15:53:24

Python的range不包括结束值。

代码语言:javascript
复制
range[start, end)

因此,在第一次迭代中,p的值为2,而range(2, 2)是一个空列表。这就是为什么输入其他部分的原因。

代码语言:javascript
复制
print range(2, 2)  # []
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21912835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档