Python 实现字符串上的switch语句

Python 实现字符串上的switch语句

在Python中,我们可以使用基于字典的方法、基于类的方法和基于lambda的方法来实现字符串上的switch语句。与其他编程语言如JavaC++等不同,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中执行其中一个已定义的多个情况。

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-使用基于类的方法

在这种方法中,我们创建一个包含每种情况的方法的类。一旦这些方法在类中实现,我们可以调用与输入字符串相关联的相应方法。

示例

在下面的例子中,我们创建了一个名为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的字典,并将字符串Monday和Tuesday和默认值映射到它们各自的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中,我们使用不同的方法来实现switch语句,比如基于字典的方法、基于类的方法和基于lambda的方法。在这里,我们使用了适当的示例来理解这三种方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程