9

有什么好方法可以无限计数?我正在尝试编写一个条件,它将一直持续到数据库中没有值为止,因此它将从 0 迭代到理论上的无穷大(当然是在 try 块内)。

我如何无限地向上计数?还是我应该使用其他东西?

我正在寻找其他语言中类似于 i++ 的东西,它会一直迭代直到失败。

4

3 回答 3

25

看看itertools.count()

从文档:

count(start=0, step=1)--> 计数对象

创建一个返回以 . 开头的均匀间隔值的迭代器n。相当于:

def count(start=0, step=1):
    # count(10) --> 10 11 12 13 14 ...
    # count(2.5, 0.5) -> 2.5 3.0 3.5 ...
    n = start
    while True:
        yield n
        n += step

例如:

import itertools

for i in itertools.count(13):
   print(i)

将生成一个从 13 开始的无限序列,步长为 +1。而且,我以前没有尝试过,但你当然也可以倒计时:

for i in itertools.count(100, -5):
    print(i)

从 100 开始,并为每个新值不断减去 5 ....


于 2012-07-11T02:45:14.240 回答
1

这比其他用户提供的代码要小一些!

x = 1
while True:
    x = x+1
    print x
于 2015-03-20T02:49:55.527 回答
0

更短一点,使用迭代器并且没有库:

x = 0
for x in iter(lambda: x+1, -1):
    print(x)

但它需要当前范围内的变量。

于 2018-11-10T23:40:13.497 回答