Python 中的 switch 語句
本教程將演示在 Python 中實現 switch
語句功能的各種方法。在許多程式語言中,switch
語句用於控制程式流,或者換句話說,根據變數或表示式的值執行哪些程式碼塊。
與 C,C++,C# 和 JAVA 等程式語言不同,Python 語言不提供 switch 語句。但是我們可以使用以下方法代替 Python 中的 switch 語句。
使用字典實現 switch 語句
Python 中的字典資料型別用於將資料集合儲存為鍵:值
對。它是可變的或可變的資料型別,並且不允許重複的值。
像在 switch 語句中一樣,我們根據變數的值決定要執行的程式碼。我們可以使用字典中的鍵:值
對,其中鍵
將是變數的值,而值
將是函式的名稱。我們可以根據鍵
值執行相應的函式。
假設我們有一個變數 x
,它的值決定程式碼的執行,我們可以將 key:value
對儲存在字典中,如 0:function1
,1:function2
等,其中 0
和 1
是字典的值。為了防止程式碼出錯,我們可以使用 dict.get(key, default)
方法,並在函式名中傳遞 default
值(如果提供了未知的 x
值)。
下面的示例程式碼演示瞭如何使用字典資料型別在 Python 中實現 switch
語句功能:
def function1():
print("function 1 was executed")
def function2():
print("function 2 was executed")
def function3():
print("function 3 was executed")
switch = {1 : function1, 2: function2, 3:function3}
x = 1
switch.get(x, function1)()
x = 2
switch.get(x, function1)()
輸出:
function 1 was executed
function 2 was executed
如果我們想根據變數 x
的值對另一個變數 a
的值執行某些操作,我們可以這樣做,如下面的示例程式碼所示:
switch = {1 : lambda a: a+1, 2: lambda a: a+2, 3: lambda a: a+3}
x = 2
a = 10
print(switch[x](a))
x = 1
a = 4
print(switch[x](a))
輸出:
12
5
使用 if...elif...else
或 if ... else
語句實現 Switch 語句
如果我們需要處理兩種以上的情況,則使用 if...elif...else
語句,而 if ... else
語句用於處理兩種可能性或情況。
如果我們有兩個可能的程式碼來表示 x
的值,則可以使用 if ... else
來代替 switch
語句;如果我們有兩個以上的程式碼,則可以使用 if...elif...else
語句或針對 x
的多個值執行的函式。
以下示例程式碼演示瞭如何在 Python 中使用 if ... else
語句實現 switch
語句功能:
def function1():
print("function 1 was executed")
def function2():
print("function 2 was executed")
x = 3
if x == 1:
function1()
else:
function2()
輸出:
function 2 was executed
我們可以使用 if...elif...else
語句來實現 switch 語句,以處理多種情況,如以下示例程式碼所示:
def function1():
print("function 1 was executed")
def function2():
print("function 2 was executed")
def function3():
print("function 3 was executed")
x = 2
if x == 1:
function1()
elif x == 2:
function2()
elif x == 3:
function3()
輸出:
function 2 was executed