Python 中的 switch 語句

Muhammad Waiz Khan 2023年1月30日 2021年3月21日
  1. 使用字典實現 switch 語句
  2. 使用 if...elif...elseif ... else 語句實現 Switch 語句
Python 中的 switch 語句

本教程將演示在 Python 中實現 switch 語句功能的各種方法。在許多程式語言中,switch 語句用於控制程式流,或者換句話說,根據變數或表示式的值執行哪些程式碼塊。

與 C,C++,C# 和 JAVA 等程式語言不同,Python 語言不提供 switch 語句。但是我們可以使用以下方法代替 Python 中的 switch 語句。

使用字典實現 switch 語句

Python 中的字典資料型別用於將資料集合儲存為鍵:值對。它是可變的或可變的資料型別,並且不允許重複的值。

像在 switch 語句中一樣,我們根據變數的值決定要執行的程式碼。我們可以使用字典中的鍵:值對,其中將是變數的值,而將是函式的名稱。我們可以根據值執行相應的函式。

假設我們有一個變數 x,它的值決定程式碼的執行,我們可以將 key:value 對儲存在字典中,如 0:function11:function2 等,其中 01 是字典的值。為了防止程式碼出錯,我們可以使用 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...elseif ... 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

相關文章 - Python Keyword