2011-03-29 39 views
0

如何編寫一個函數,每次我打電話時都會按升序給我一個新的數字?Python:函數返回數字的升序

例如,如果我第一次調用它,它將返回「1」,如果我再次調用它,它將返回「2」。

+0

你可能有興趣在接受這個問題的答案:HTTP://計算器。 com/questions/231767/the-python-yield-keyword-explained – syrion 2011-03-29 12:58:41

+0

@syrion:這是「產量解釋」,可能現在只是一種神祕的方式,讓我們的朋友來到他的櫃檯;) – user237419 2011-03-29 13:02:14

+0

是的,我也提高了Sven的答案,因爲它更直接 - 但答案就是解釋了爲什麼它有效。 :) – syrion 2011-03-29 13:03:53

回答

7

itertools.count()怎麼樣?

counter = itertools.count() 
print next(counter) 
print next(counter) 
print next(counter) 

打印

0 
1 
2 

如果你希望你的櫃檯,從1日開始,使用

counter = itertools.count(1) 
+0

試圖使用itertools,我得到「NameError:name'itertools'未定義」 – Maks 2011-03-29 13:25:33

+0

@Maks:您必須在文件的開頭導入itertools。 – delnan 2011-03-29 13:29:12

+0

謝謝。另外,我需要將這些升序號碼分配給一個字符串。正如我udnerstand我不能在這種情況下使用「下一個」。例如,「ouput = next(counter)」不起作用 – Maks 2011-03-29 13:36:43