Python没有内置的switch
语句,但可通过以下两种方式实现类似功能:
一、使用字典映射(推荐)
通过字典将条件与对应操作关联,简洁高效,适用于分支较少的场景。
示例代码:
def switch_case(value):
switch = {
1: "Case 1",
2: "Case 2",
3: "Case 3"
}
return switch.get(value, "Default case")
result = switch_case(2)
print(result) # 输出: Case 2
扩展:使用lambda
表达式执行复杂操作
def switch_case(case):
switch = {
'case1': lambda: print("case1 called"),
'case2': lambda: print("case2 called"),
'case3': lambda: print("case3 called"),
}
return switch.get(case, lambda: print("invalid case"))()
switch_case('case2') # 输出: case2 called
二、使用if-elif-else
语句
逻辑清晰,适合分支复杂或条件动态变化的情况。
示例代码:
def switch_case(value):
if value == 1:
return
elif value == 2:
return "Case 2"
else:
return "Default case"
result = switch_case(5)
print(result) # 输出: Default case
三、Python 3.10新增的结构模式匹配(类似switch
)
使用match
/case
语法,支持更简洁的代码结构,但需Python 3.10及以上版本。
示例代码:
def switch(lang):
match lang:
case "JavaScript":
return "Web Developer"
case "Python":
return "Data Scientist"
case "Solidity":
return "Blockchain Developer"
case _:
return "Unknown Language"
print(switch("Python")) # 输出: Data Scientist
-
字典映射 :最常用且灵活,适合简单分支。
-
if-elif-else
:逻辑直观,适合复杂条件。 -
结构模式匹配 :Python 3.10新增,语法简洁,但需版本支持。