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+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告