Pythonスイッチケースステートメントを実装する4つの方法
7638 ワード
この短いチュートリアルでは、スイッチケースステートメントを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 +のスイッチケースの構文
それから、それはケース(すなわち木曜日)の値を印刷します.
Javaに慣れている場合は、Javaのスイッチケースの例を示します
Javaのスイッチケースの構文
' if elif 'はPythonのmultiple if else文のショートカットです.' if 'ステートメントで' if elif '文を開始し、最後に' else '文を追加します.
構文
Pythonでは、辞書はキー値ペアを使用してメモリ内のオブジェクトのグループを格納します.スイッチケースステートメントを実装するには、辞書データ型のキー値がswitch caseステートメントの' case 'のように動作します.
例
クラスは、プロパティとメソッドを持つオブジェクトコンストラクターです.Pythonのクラスはswitch case文を実装するために使用できます.以下では、同じクラスのクラスを使用する例を示します.
例
Pythonでは、スイッチケースを実装するために関数とlambdaを使用することができます.以下はその例である.
例
スイッチケースは使いやすくて、実行します.しかし、Pythonには組み込みのスイッチケース機能がありません.このチュートリアルでは、elif - else、辞書マッピングまたはクラスを使用して、switch caseステートメントを描画し、効率を上げることができます.
Pythonスイッチケース
スイッチケースは何ですか。
' switch case 'ステートメントは' if ... else 'ステートメントと似ていますが、' if . else 'よりもクリーナーでより速い方法です.これはC +やJavaのような言語に存在します.
特定のコードブロックのみを実行する必要がある場合、特に他のコードブロックが条件を満たさない場合は、スイッチケースを使用します.このコード・ブロックが手動でチェックされるならば、コードの複雑さは増加します.畝
switch caseステートメントを使用すると、多くの可能な値の1つである変数をテストできます.変数は、それが取る特定の値のコードに従います.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ステートメントを描画し、効率を上げることができます.
Reference
この問題について(Pythonスイッチケースステートメントを実装する4つの方法), 我々は、より多くの情報をここで見つけました https://dev.to/hrishikesh1990/4-ways-to-implement-python-switch-case-statement-43mpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol