我正在学习Python,我遇到了一些与'for循环‘有关的东西,比方说,我有一个程序需要5个数字。我知道这是没有意义的,但作为一个例子是很好的。无论如何,如果我这样做,它就不会重新启动它的循环。
myNumbers = []
for x in xrange(5):
try:
myNumbers.append( int(raw_input()) )
except ValueError:
myNumbers = []
x = -1我想,如果我把x重置为-1,它只会使for循环继续运行,但它从未重新启动。它仍然是,只有去5次。我把-1放在这里的原因是,在那之后,x会计数到0。我试着找出解决办法,但没有。如果你想帮我,谢谢你。
发布于 2015-06-29 15:44:11
xrange() (或range() )称为生成器函数,x类似于for循环为循环中的下一个值分配的local variable。
xrange()返回参数1×1中给定范围内的值,for循环将其赋值给变量x。因此,即使在循环中更改x的值,xrange()也不知道这样的更改,并且仍然会提供范围中的下一个值。
发电机功能的例子-
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
9x中的值更改永远不会传播回range()或xrange()函数。
https://stackoverflow.com/questions/31119867
复制相似问题