2012-07-11 41 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