Pythonスイッチケースステートメントを実装する4つの方法


この短いチュートリアルでは、スイッチケースステートメントをPython . スイッチケースが使用されているものと、Pythonで使用する様々な方法を見ます.

Pythonスイッチケース

  • What is Switch Case used for?
  • Methods to implement Switch case in Python
  • Using If-elif-else
  • Using Dictionary Mapping
  • Using Python classes
  • Using Python Functions and Lambdas
  • Closing statement
  • スイッチケースは何ですか。


    ' switch case 'ステートメントは' if ... else 'ステートメントと似ていますが、' if . else 'よりもクリーナーでより速い方法です.これはC +やJavaのような言語に存在します.
    特定のコードブロックのみを実行する必要がある場合、特に他のコードブロックが条件を満たさない場合は、スイッチケースを使用します.このコード・ブロックが手動でチェックされるならば、コードの複雑さは増加します.畝
    switch caseステートメントを使用すると、多くの可能な値の1つである変数をテストできます.変数は、それが取る特定の値のコードに従います.switch case文の重要性は以下を含みます
  • 簡単デバッグ
  • 読みやすく理解する
  • 維持しやすい
  • 簡単にチェックし、処理する値を確認する
  • Pythonにはswitch文の機能がありません.しかし、switch文の機能を交換し、プログラミングを容易にかつ高速にする方法があります.Pythonが他の言語でswitch case文のように動作するコードスニペットを作成することができます.畝
    ' switch 'は、変数に格納された値をテストする制御機構です.switch文に対応するcase文を実行します.このように、「スイッチ事件」声明は我々のプログラムの流れをコントロールして、我々のコードが複数の「if」声明によって乱雑でないのを確実とします.畝
    PythonでのSwitch Caseステートメントの実装に移る前に、C +コードの下の例でスイッチケースの概念を理解しましょう.
    C +のスイッチケースの構文
    switch (expression)  {
        case constant1:
            // code to be executed if 
            // expression is equal to constant1;
            break;
    
        case constant2:
            // code to be executed if
            // expression is equal to constant2;
            break;
            .
            .
            .
        default:
            // code to be executed if
            // expression doesn't match any constant
    }
    
    スイッチケースの例
    #include <iostream>
    using namespace std;
    
    int main() {
      int day = 4;
      switch (day) {
      case 1:
        cout << "Monday";
        break;
      case 2:
        cout << "Tuesday";
        break;
      case 3:
        cout << "Wednesday";
        break;
      case 4:
        cout << "Thursday";
        break;
      case 5:
        cout << "Friday";
        break;
      case 6:
        cout << "Saturday";
        break;
      case 7:
        cout << "Sunday";
        break;
      }
      return 0;
    }
    
    出力
    Thursday
    
    この場合、変数日を「4」と宣言します.それから、変数に対して異なるコードを実行しますが、ケース4を宣言する特定の条件に対してのみ実行されます.
    それから、それはケース(すなわち木曜日)の値を印刷します.
    Javaに慣れている場合は、Javaのスイッチケースの例を示します
    Javaのスイッチケースの構文
    switch(expression)
    {
       // The switch block has case statements whose values must be of the same type of expression
       case value1 :
       // Code statement to be executed
       break; // break is optional
       case value2 :
       // Code statement to be executed
       break; // break is optional
       // There can be several case statements
       // When none of the cases is true, a default statement is used, and no break is needed in the default case.
       default :
       // Code statement to be executed
    }
    
    スイッチケースの例
    public class SwitchCaseExample1 {
    
       public static void main(String args[]){
         int num=2;
         switch(num+2)
         {
            case 1:
          System.out.println("Case1: Value is: "+num);
        case 2:
          System.out.println("Case2: Value is: "+num);
        case 3:
          System.out.println("Case3: Value is: "+num);
            default:
          System.out.println("Default: Value is: "+num);
          }
       }
    }
    
    出力
    Default: Value is: 2
    
    さて、C +とJavaのスイッチケースをよく理解した後、Pythonでスイッチケースを実装する方法を見てみましょう.

    Pythonでのスイッチケースの実装方法


    を返します。


    ' if elif 'はPythonのmultiple if else文のショートカットです.' if 'ステートメントで' if elif '文を開始し、最後に' else '文を追加します.
    構文
    if (condition):
        statement
    elif (condition):
        statement
    .
    .
    else:
        statement
    

    # if elif statement example 
    
    City= 'Bangalore'
    
    if city == 'Delhi': 
        print("city is Delhi") 
    
    elif city == "Hyderabad": 
        print("city is Hyderabad") 
    
    elif city== "Bangalore": 
        print("city is Bangalore") 
    
    else: 
        print("city isn't Bangalore, Delhi or Hyderabad")
    
    出力:
    City is Bangalore
    

    辞書マッピングの使用


    Pythonでは、辞書はキー値ペアを使用してメモリ内のオブジェクトのグループを格納します.スイッチケースステートメントを実装するには、辞書データ型のキー値がswitch caseステートメントの' case 'のように動作します.

    # Implement Python Switch Case Statement using Dictionary
    
    def monday():
        return "monday"
    def tuesday():
        return "tuesday"
    def wednesday():
        return "wednesday"
    def thursday():
        return "thursday"
    def friday():
        return "friday"
    def saturday():
        return "saturday"
    def sunday():
        return "sunday"
    def default():
        return "Incorrect day"
    
    switcher = {
        1: monday,
        2: tuesday,
        3: wednesday,
        4: thursday,
        5: friday,
        6: saturday,
        7: sunday
        }
    
    def switch(dayOfWeek):
        return switcher.get(dayOfWeek, default)()
    
    print(switch(3))
    print(switch(5))
    
    出力
    wednesday
    friday
    

    Pythonクラスの使用


    クラスは、プロパティとメソッドを持つオブジェクトコンストラクターです.Pythonのクラスはswitch case文を実装するために使用できます.以下では、同じクラスのクラスを使用する例を示します.

    class PythonSwitch:
        def day(self, dayOfWeek):
    
            default = "Incorrect day"
    
            return getattr(self, 'case_' + str(dayOfWeek), lambda: default)()
    
        def case_1(self):
            return "monday"
        def case_2(self):
            return "tuesday"
        def case_3(self):
            return "wednesday"
        def case_4(self):
           return "thursday"
        def case_5(self):
            return "friday"
        def case_7(self):
            return "saturday"
        def case_6(self):
            return "sunday"
    my_switch = PythonSwitch()
    
    print (my_switch.day(1))
    print (my_switch.day(3))
    
    出力
    monday
    wednesday
    

    Python関数と


    Pythonでは、スイッチケースを実装するために関数とlambdaを使用することができます.以下はその例である.

    def zero():
            return 'zero'
    def one():
            return 'one'
    def indirect(i):
            switcher={
                    0:zero,
                    1:one,
                    2:lambda:'two'
                    }
            func=switcher.get(i,lambda :'Invalid')
            return func()
    indirect(4)
    
    出力
    Invalid
    

    閉鎖声明


    スイッチケースは使いやすくて、実行します.しかし、Pythonには組み込みのスイッチケース機能がありません.このチュートリアルでは、elif - else、辞書マッピングまたはクラスを使用して、switch caseステートメントを描画し、効率を上げることができます.