猿问

像C ++这样的Python中的无限for循环

在其中C++我们可以编写一个无限for循环,例如for(;;)。这里有这样的语法在Python中编写无限循环吗?

注意:我知道如果我写的for i in range(a_very_big_value)话,它可能会无限运行。我正在搜索类似的简单语法C++或其他任何infinite for loop用Python编写的技巧。


莫回无
浏览 232回答 4
4回答

一只甜甜圈

是的,有可能。带while循环:while True:    ...随着for(只是踢)循环:from itertools import cycle     for _ in cycle(range(1)):     ...无限期的cycle回报1。无论哪种情况,都取决于您以最终终止的方式来实现循环逻辑。最后,如果要实现execute-until -___循环,则应坚持使用while True,因为这是惯用的方式。

慕运维8079593

我从这里和这里找到答案使用itertools.count:import itertoolsfor i in itertools.count():    if there_is_a_reason_to_break(i):        break在Python2中,xrange()仅限于sys.maxint,对于大多数实际目的而言可能已足够:import sysfor i in xrange(sys.maxint):    if there_is_a_reason_to_break(i):        break在Python3中,range()可以更高,尽管不能达到无穷大:import sysfor i in range(sys.maxsize**10):  # you could go even higher if you really want    if there_is_a_reason_to_break(i):        break因此,最好使用 count()也可以通过更改要迭代的列表来实现此目的,例如:l = [1]for x in l:    l.append(x + 1)    print(x)
随时随地看视频慕课网APP

相关分类

Python
我要回答