2012-01-03 16 views
7

私はPythonが初めてです。実際には以下のようにJavaを使って実装しました。Pythonの無限ループfor

for(;;){ 
switch(expression){ 
    case c1: statements 

    case c2: statements 


    default: statement 
} 
} 

これをPythonでどのように実装できますか?

答えて

12

使用whileループ:

while True: 

     if condition1: 
      statements 
     elif condition2: 
      statements 
     ... 
     else: 
      statements 
6
while True: 
    # do stuff forever 
0

あなたは正式には、Pythonで何switch文はありません

while True: 
    if c1: 
     statements 
    elif c2: 
     statements 
    else: 
     statements 

または

var = 1 
while var == 1: 
    # do stuff 
+1

通常、無限ループに話している場合は、整数の代わりにブール値「真」を使用するほうが暗黙的です。こうすることで、意図が明確になり、デバッグが容易になります( 'var'の値は時間とともに変化しないでしょうか?)。 – Makoto

+0

真実です。ブール値を使うことは(おそらく)祝福された方法です。それは同じことを達成するもう一つの例です。 'var'は変更することができますが、それは開発者がその方法を選択すると変更しないことにもなります。 ;-) –

+1

しかし、なぜ 'var'を使うのでしょうか?ポイントが無限ループを作成するために常に1に等しい値を持つことになっているならば、 'while 1 == 1'と言うだけではどうですか?そしてそれをやったのは、真実の間に書くだけでは不合理です。 – Ben

1

を使用することができます。これは一連のネストされた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 
+0

'switch /'にあるように 'if/elif/else'にフォールスルーがないことに気をつけてください。 – dcrosta

1

あなたがpythonで無限に反復処理する方法を探している場合は、forループのようにitertools.count()関数を使用することができます。 http://docs.python.org/py3k/library/itertools.html#itertools.count

+0

これは、itertools.count(0、 0)) 'を生成器を期待する関数の引数として使用します。 whileループを持つ別の関数を定義する必要はありません。 – hobs

+0

@hobsこれを達成するには、 'itertools.repeat( 'CONSTANT')'を使用します。 – flornquake