web-dev-qa-db-ja.com

Pythonのcase/switchステートメントに相当するものは何ですか?

私が知りたいのですが、VB.netやC#で入手できる例のように、caseステートメントに相当するPythonのものはありますか?

350
user1524844

公式ドキュメント はスイッチを提供しないことを嬉しく思いますが、 辞書を使用した/ - ソリューションを見ました

例えば:

# 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]()

あなたが転倒に大きく依存している場合、これはバラバラになり始めます。

465
Prashant Kumar

直接の置き換えはif/Elif/elseです。

しかし、多くの場合、Pythonでそれを実行するためのより良い方法があります。 「 Pythonでのswitch文の置き換え? 」を参照してください。

132
Lennart Regebro