我是Python新手。其實我用Java實現了一些東西,如下所示。Python中的無限循環
for(;;){
switch(expression){
case c1: statements
case c2: statements
default: statement
}
}
我該如何在Python中實現它?
我是Python新手。其實我用Java實現了一些東西,如下所示。Python中的無限循環
for(;;){
switch(expression){
case c1: statements
case c2: statements
default: statement
}
}
我該如何在Python中實現它?
使用while循環:
while True:
if condition1:
statements
elif condition2:
statements
...
else:
statements
while True:
# do stuff forever
您可以使用
while True:
if c1:
statements
elif c2:
statements
else:
statements
或
var = 1
while var == 1:
# do stuff
形式上,有一個在Python中沒有switch
聲明;這是一系列嵌套的if-elif-else
陳述。
無限循環由while True
語句完成。
一起:
while True:
if condition_1:
condition_1_function
elif condition_2:
condition_2_function
elif condition_3:
condition_3_function
else: # Always executes like "default"
condition_default_function
請注意,'if/elif/else'中沒有像'switch'那樣的'fall-through' – dcrosta 2012-01-03 15:06:36
如果你正在尋找一種方式來在python無限循環,你可以使用itertools.count()函數就像一個for循環。 http://docs.python.org/py3k/library/itertools.html#itertools.count
這看起來對無限生成器表達式很有用,比如'('CONSTANT'for itertools.count(0, 0))'作爲期望生成器的函數的參數。您不必定義具有True循環的單獨函數。 – hobs 2013-07-12 18:13:33
@hobs爲了達到這個目的,你可以使用'itertools.repeat('CONSTANT')'。 – flornquake 2013-08-14 17:29:19
正常情況下,如果我們正在說無限循環,則使用布爾值「True」而不是整數。這樣一來,意圖就變得更清楚和更容易調試(誰說'var'的值可能不會隨着時間而改變?)。 – Makoto 2012-01-03 14:55:49
這是真的,並且使用布爾值(可能)是祝福的方式。這是實現同樣目標的另一個例子。 'var'可以改變,但是如果她選擇這種方式,那麼開發者也不應該改變它。 ;-) – 2012-01-03 15:24:58
但爲什麼'var'呢?如果關鍵點的值始終等於1來創建一個無限循環,爲什麼不直接說'while 1 == 1'?做完這些之後,不要只寫'while True'是荒謬的。 – Ben 2012-01-03 16:16:31