2016-04-29 108 views
1

有沒有辦法在Python中編寫一個無限for循環?如何在Python中創建無限循環(不使用while循環)?

for t in range(0,10): 
    if(t == 9): t= 0 # will this set t to 0 and launch infinite loop? No! 
    print(t) 

一般來說,有沒有辦法在沒有使用while循環的情況下編寫像java中的無限pythonic循環?

+0

我很好奇,你爲什麼問這個問題? –

+0

@ joelgoldstick,即時製作關於python高中的幻燈片,我做了一個關於無限循環和好奇 - 有辦法在python中做無限循環,所以這就是爲什麼要求 – ERJAN

回答

1

是的,只是這樣做:

while True: 
    print(t) 
    # to stop the loop: 
    # break 
+0

不使用,而 – ERJAN

1

只是傳遞可以用永遠的真正價值有所幫助。

while True: 
    pass 
1

你應該創建自己的無限發電機cycle

from itertools import cycle 

gen = cycle([0]) 

for elt in gen: 
    # do stuff 

或基本使用itertools.count()

for elt in itertools.count(): 
    # do stuff 
+0

你是什麼意思的'循環(_)'(下劃線)? –

+0

這是一個一次性變量的約定 – mvelay

+0

是的,但它沒有在你的例子中分配。運行它,你會得到一個'NameError:name'_'未定義'。 –

4

的itertools.repeat功能會不斷地返回一個對象,所以你可以循環結束於:

for x in itertools.repeat(1): 
    pass 
1

要通過遍歷一個迭代一遍又一遍,你會使用itertools.cycle

from itertools import cycle 
for t in cycle(range(0, 4)): 
    print(t) 

這將打印輸出如下:

0 
1 
2 
3 
0 
1 
2 
3 
0 
1 
...