2012-07-14 4 views
241

私は知っている、VB.netやC#で利用できる例のようなcase文のためのPythonの同等ですか?case/switch文のPythonに相当するものは何ですか?

+2

2番目の質問はフォローアップではなく、フォローアップでも別の質問として投稿されます。それに加えて、それは話題にはならず、プログラマーに行くべきです.stackexchange.com。そして、あなたの最初の質問は重複しています。 –

答えて

355

official docsはスイッチを提供していないのに対して、私はsolution using dictionariesを見ました。例えば

# define the function blocks 
def zero(): 
    print "You typed zero.\n" 

def sqr(): 
    print "n is a perfect square\n" 

def even(): 
    print "n is an even number\n" 

def prime(): 
    print "n is a prime number\n" 

# map the inputs to the function blocks 
options = {0 : zero, 
      1 : sqr, 
      4 : sqr, 
      9 : sqr, 
      2 : even, 
      3 : prime, 
      5 : prime, 
      7 : prime, 
} 

そして、同等のスイッチブロックが呼び出されます。

options[num]() 

これは、あなたが重くて秋に依存している場合離れて低下し始めます。

+12

辞書は関数定義 – flexxxit

+0

@MortezaLSCの後に来なければなりません。整数を関数にマッピングする場合は、引用符は必要ありません。 –

+0

@Prashant Kumar、私はPython 2.7.6を使用していますが、エラーが発生しました! +1 – MLSC

関連する問題