在本文中,我们将尝试理解 Python 中的 Switch Case(替换)。
Python中Switch Case的替代品是什么?
与我们之前使用的所有其他编程语言不同,Python 没有 switch 或 case 语句。为了绕过这个事实,我们使用字典映射。
方法一:使用字典映射在 Python 中实现 Switch Case
在 Python 中,字典是数据值的无序集合,可用于存储数据值。与每个元素只能包含一个值的其他数据类型不同,字典还可以包含键:值对。当我们用字典代替 Switch case 语句时,字典数据类型的键值作为 switch 语句中的 case 起作用。
# 将数字转换为字符串 Switcher 的函数在这里是字典数据类型 def numbers_to_strings(argument): switcher = { 0: "zero", 1: "one", 2: "two", } # 字典数据类型的 get() 方法返回传递参数的值,如果它存在于字典中,否则第二个参数将被分配为传递参数的默认值 return switcher.get(argument, "nothing") # 驱动程序 if __name__ == "__main__": argument=0 print (numbers_to_strings(argument))
方法二:使用 if-else 在 Python 中实现 Switch Case
if-else 是另一种实现 switch case 替换的方法。它用于确定是否将执行特定语句或语句块,即如果特定条件为真,是否将执行语句块。
bike = 'Yamaha' if fruit == 'Hero': print("letter is Hero") elif fruit == "Suzuki": print("letter is Suzuki") elif fruit == "Yamaha": print("fruit is Yamaha") else: print("Please choose correct answer")
方法三:在 Python 中使用 Class 实现 Switch Case
在这个方法中,我们使用一个类在 Python 中的 switch 类中创建一个 switch 方法。
class Python_Switch: def day(self, month): default = "Incorrect day" return getattr(self, 'case_' + str(month), lambda: default)() def case_1(self): return "Jan" def case_2(self): return "Feb" def case_3(self): return "Mar" my_switch = Python_Switch() print(my_switch.day(1)) print(my_switch.day(3))
输出:
Jan mar
Python中的切换案例
在Python 3.10及之后,Python 将通过使用match代替 switch 来支持这一点:
def number_to_string(argument): match argument: case 0: return "zero" case 1: return "one" case 2: return "two" case default: return "something" if __name__ = "__main__": argument = 0 number_to_string(argument)
它类似于 C++ 、Java等中的 switch case。