Python 中的 switch 語句

Muhammad Waiz Khan 2023年1月30日
  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