Bri*_*i.M 7 python loops for-loop infinite infinite-loop
是否有可能在for循环中获得无限循环?
我的猜测是Python中可能存在无限循环.我想知道这个以供将来参考.
Python中无限循环的典型示例是:
while True:
pass
Run Code Online (Sandbox Code Playgroud)
要将其应用于for循环,请使用生成器(最简单的形式):
def infinity():
while True:
yield
Run Code Online (Sandbox Code Playgroud)
这可以使用如下:
for _ in infinity():
pass
Run Code Online (Sandbox Code Playgroud)
要根据要求使用for循环回答您的问题,它将永远循环,因为1永远不会等于0:
for _ in iter(int, 1):
pass
Run Code Online (Sandbox Code Playgroud)
如果您想使用按第一个答案递增的数字进行无限循环,则可以使用itertools.count:
from itertools import count
for i in count(0):
....
Run Code Online (Sandbox Code Playgroud)
import itertools
for i in itertools.count():
pass
Run Code Online (Sandbox Code Playgroud)
在 Python3 中, range() 可以更高,但不是无穷大:
import sys
for i in range(sys.maxsize**10): # you could go even higher if you really want but not infinity
pass
Run Code Online (Sandbox Code Playgroud)
另一种方式可以是
def to_infinity():
index=0
while 1:
yield index
index += 1
for i in to_infinity():
pass
Run Code Online (Sandbox Code Playgroud)
是的,请使用始终产生另一个数字的生成器:这是一个示例
def zero_to_infinity():
i = 0
while True:
yield i
i += 1
for x in zero_to_infinity():
print(x)
Run Code Online (Sandbox Code Playgroud)
也可以通过更改要迭代的列表来实现此目的,例如:
l = [1]
for x in l:
l.append(x + 1)
print(x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17443 次 |
| 最近记录: |