所以我试图创建一个使用for循环而不是while循环的无限循环。这是我目前的代码。如果此代码有效,则应无限生成x。 目前的代码:
z=1
for x in range(0,z):
print(x)
z=z+1
答案 0 :(得分:5)
这不起作用,因为第一次进入for循环时,range
函数会在此时生成从零到z
的值的范围,稍后会更改为{{1} }不会影响它。您可以执行类似于您想要的操作,例如itertools.count
:
z
答案 1 :(得分:2)
range
返回一个迭代器。在循环迭代之前已经生成并评估了迭代器。 (它是循环迭代的返回迭代器)。
返回迭代器后,不使用z
的值,因此递增或更改其值为no-op。
如果您真的想要使用for
进行无限循环,则必须编写自定义生成器。
例如:
def InfiniteLoop():
yield 1
用作:
for i in InfiniteLoop()
答案 2 :(得分:1)
每次迭代后更新列表进行无限循环
list=[0]
for x in list:
list.append(x+1)
print (x)