Python字串實現switch語句


在Python中,我們可以使用基於字典的方法、基於類的方法和基於lambda的方法來實現字串的switch語句。與Java、C++等其他程式語言不同,Python沒有內建的switch語句。在本文中,我們將學習如何使用基於字典的方法、基於類的方法和基於lambda的方法在Python中實現switch語句的功能。

其他程式語言中的switch語句

在瞭解Python如何實現switch語句之前,我們需要了解switch語句的工作原理以及如何在其他程式語言中實現。

switch語句是一種條件語句,它評估一個表示式,並根據其值執行不同的操作。它包含幾個程式碼塊case,這些程式碼塊根據已評估的表示式執行。

語法

switch(expression) {

   case constant-expression  :
      statement(s);
      break; /* optional */
	
   case constant-expression  :
      statement(s);
      break; /* optional */
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

switch()語句接受一個表示式,並根據該表示式/值的評估結果執行switch case中定義的多個case中的一個。

在Python中實現switch語句

方法1 - 使用基於字典的方法

在這種方法中,我們建立一個字典,將字串值對映到相應的函式。對映完成後,我們可以呼叫與輸入字串關聯的函式。

示例

在下面的示例中,我們建立了單獨的函式來列印星期一和星期二,如果日期既不是星期一也不是星期二,則使用預設函式。然後,我們使用Python字典將字串“星期一”和“星期二”與其對應的函式對映。

def monday():
   print("Today is Monday")

def tuesday():
   print("Today is Tuesday")

def default():
   print("Today is not Monday or Tuesday")

switch = {
   "Monday": monday,
   "Tuesday": tuesday,
}

day = "Monday"

switch.get(day, default)()

輸出

Today is Monday

方法2 - 使用基於類的方法

在這種方法中,我們建立一個類,其中包含每個case的方法。實現類中的方法後,我們可以呼叫與輸入字串關聯的相應方法。

示例

在下面的示例中,我們建立了一個名為switch的類,其中包含用於列印不同日期(如星期一和星期二)的方法,以及如果日期既不是星期一也不是星期二的預設函式。然後,我們可以呼叫getattr()方法來獲取與正在傳遞的相應字串關聯的方法。

class Switch:
   def monday(self):
      print("Today is Monday")

   def tuesday(self):
      print("Today is Tuesday")

   def default(self):
      print("Today is not Monday or Tuesday")

switch = Switch()
day = "Monday"

getattr(switch, day.lower(), switch.default)()

輸出

Today is Monday

方法3 - 使用基於lambda的方法

在這種方法中,我們建立一個字典,將字串值對映到相應的lambda函式。然後,我們可以呼叫與輸入字串關聯的lambda函式。

示例

在下面的示例中,我們建立了一個名為switch的字典,並將字串“星期一”和“星期二”以及預設值對映到它們各自的lambda函式。然後,我們呼叫getattr()方法來獲取與輸入字串day關聯的方法。

switch = {
   "Monday": lambda: print("Today is Monday"),
   "Tuesday": lambda: print("Today is Tuesday"),
   "default": lambda: print("Today is not Monday or Tuesday")
}

day = "Monday"

switch.get(day, switch["default"])()

輸出

Today is Monday

結論

Python沒有像其他程式語言那樣內建函式來實現switch語句。因此,在Python中,我們使用不同的方法,如基於字典的方法、基於類的方法和基於lambda的方法來實現switch語句。在本文中,我們使用適當的示例理解了所有三種方法。

更新於:2023年4月17日

2K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.