实际上 Python 并没有内置的 switch/case 语句。但是可以使用字典和函数来模拟实现类似的功能。
使用字典和函数实现 switch/case 语句的方法
- 创建字典,将 case 与对应函数关联起来:
def case0():
print("You choose 0.")
def case1():
print("You choose 1.")
def case2():
print("You choose 2.")
def default():
print("Invalid choice.")
cases = {0: case0, 1: case1, 2: case2}
- 创建一个函数,传入需要匹配的值,通过 dictionary 类型的 cases 关联值与对应的函数:
def switch(case_value):
return cases.get(case_value, default)()
- 在需要调用 switch/case 的地方调用该函数并传入需要匹配的值:
switch(0) # 输出 "You choose 0."
switch(3) # 输出 "Invalid choice."
示例一:实现数值匹配的 switch/case
def case1():
print("You choose 1.")
def case2():
print("You choose 2.")
def case3():
print("You choose 3.")
def default():
print("Invalid choice.")
cases = {1: case1, 2: case2, 3: case3}
def switch(case_value):
return cases.get(case_value, default)()
switch(1) # 输出 "You choose 1."
switch(2) # 输出 "You choose 2."
switch(4) # 输出 "Invalid choice."
示例二:实现字符串匹配的 switch/case
def case_hello():
print("Hello, world!")
def case_hi():
print("Hi, there!")
def case_bye():
print("Goodbye, world!")
def default():
print("Invalid choice.")
cases = {"hello": case_hello, "hi": case_hi, "bye": case_bye}
def switch(case_value):
return cases.get(case_value, default)()
switch("hello") # 输出 "Hello, world!"
switch("hi") # 输出 "Hi, there!"
switch("goodnight") # 输出 "Invalid choice."
通过以上示例可知,我们可以使用字典和函数模拟实现 Python 中类似 switch/case 的功能。但是,这并不是完整的 switch/case 语句,因为 Python 本身就没有 switch/case 语句,仅仅是利用了字典和函数的特性来实现类似的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用 Python 实现简单的 switch/case 语句的方法 - Python技术站