首页 > 解决方案 > Python 中的无限 for 循环,如 C++

问题描述

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

注意:我知道如果我写,for i in range(a_very_big_value)那么它可能会运行无穷大。我正在寻找一个简单的语法C++或任何其他infinite for loop用 Python 编写的技巧。

标签: pythonfor-loop

解决方案


Python 的for语句是一个“for-each”循环(有点像C++11 及更高版本中的range-for),而不是 C 风格的“for-computation”循环。

但请注意,在 Cfor (;;)中,与while (1). Python 的while循环与 C 的循环基本相同,只是有一些额外的花里胡哨。而且,事实上,永远循环的惯用方式是:1

while True:

如果你真的想写一个for永远存在的循环,你需要一个无限长的迭代。您可以从标准库中获取一个:2

for _ in itertools.count():

……或者自己写一个:

def forever():
    while True:
        yield None

for _ in forever():

但同样,这与 并不真正相似for (;;),因为它是一个 for-each 循环。


1.while 1:曾经是常见的替代品。它在旧版本的 Python 中更快,虽然不是在当前版本中,但有时这很重要。

2. 当然,重点count不是永远持续下去,而是永远数数。例如,如果enumerate不存在,您可以将其写为zip(itertools.count(), it).


推荐阅读