首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: for循环和xrange()

Python: for循环和xrange()
EN

Stack Overflow用户
提问于 2015-06-29 15:38:10
回答 1查看 1.1K关注 0票数 1

我正在学习Python,我遇到了一些与'for循环‘有关的东西,比方说,我有一个程序需要5个数字。我知道这是没有意义的,但作为一个例子是很好的。无论如何,如果我这样做,它就不会重新启动它的循环。

代码语言:javascript
复制
myNumbers = []
for x in xrange(5):
    try:
        myNumbers.append( int(raw_input()) )
    except ValueError:
        myNumbers = []
        x = -1

我想,如果我把x重置为-1,它只会使for循环继续运行,但它从未重新启动。它仍然是,只有5次。我把-1放在这里的原因是,在那之后,x会计数到0。我试着找出解决办法,但没有。如果你想帮我,谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2015-06-29 15:44:11

xrange() (或range() )称为生成器函数,x类似于for循环为循环中的下一个值分配的local variable

xrange()返回参数1×1中给定范围内的值,for循环将其赋值给变量x。因此,即使在循环中更改x的值,xrange()也不知道这样的更改,并且仍然会提供范围中的下一个值。

发电机功能的例子-

代码语言:javascript
复制
def myrange(a):
    i = 0
    while i < a:
        yield i
        i = i + 1

>>> for x in  myrange(10):
...     print(x)
...     x = 1
...
0
1
2
3
4
5
6
7
8
9

x中的值更改永远不会传播回range()xrange()函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31119867

复制
相关文章

相似问题

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