2012-07-11 32 views
5

什么是继续无限计数的好方法?我试图编写一个条件,一直持续到数据库中没有值,所以它将从0迭代到理论上无穷大(当然,在try块中)。简单的方法来无限地继续向上计数

我怎么会算向上无限?还是应该使用别的东西?

我正在寻找类似我在其他语言++的东西,它不断迭代,直到失败。

+0

此外,为什么Python没有i ++?从字面上看,我工作过的所有其他语言都是这样,它看起来像一个明显的漏洞。 – 2012-07-11 02:49:01

+6

1)'i ++'是句法糖,我怀疑你可以称之为排除一个“明显的漏洞”。 2)Python使用'i + = 1',因为它对增量更加明确。 3)圭多决定如此。 – 2012-07-11 02:51:09

+2

i + = 1只有一个字符 – 2012-07-11 02:51:13

回答

19

看看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步骤。而且,我还没有尝试过,但你可以指望降得当然是:在100

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

开始,并保持5减去为每个新的价值....


+1

击败我吧... – jamylak 2012-07-11 02:45:30

+1

@jamylak得到幸运:) – Levon 2012-07-11 02:45:50

+0

我只是无法忍受的SO自动代码格式化不正确的颜色:) – jamylak 2012-07-11 03:38:34

1

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

x = 1 
while True: 
    x = x+1 
    print x 
+0

我喜欢'count',但这也是有效的,并且可以派上用场,如果你需要多个计数器。会更新为'x + = 1' – CasualDemon 2017-10-05 21:04:10

0

xrange会给你,你迭代,一个for环比while环+反清洁,如果你问我,不会使用内存的迭代对象。

import sys 
for i in xrange(0,sys.maxint): 
    print i