feat: python
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
# Python没有原生的switch-case语句,但可以通过以下几种方式来实现类似的功能:
|
||||
|
||||
# if-elif-else结构:最直接的方法,适合简单的条件判断
|
||||
# 字典映射:推荐的方法,利用字典的键值对映射实现高效的条件分支
|
||||
# 函数字典:在字典中存储函数对象,实现复杂的逻辑处理
|
||||
# Python 3.10+ match语句:现代Python提供的模式匹配语法
|
||||
|
||||
|
||||
# 字典映射
|
||||
def switch_dict(case):
|
||||
switcher = {
|
||||
"A": "case A",
|
||||
"B": "case B",
|
||||
"C": "case C",
|
||||
}
|
||||
return switcher.get(case, "Defaule Case")
|
||||
|
||||
|
||||
result = switch_dict("A")
|
||||
print(result) # case A
|
||||
result = switch_dict("D")
|
||||
print(result) # Defaule Case
|
||||
|
||||
|
||||
# 使用函数字典
|
||||
def case_a():
|
||||
return "Action for case A"
|
||||
|
||||
|
||||
def case_b():
|
||||
return "Action for case B"
|
||||
|
||||
|
||||
def case_c():
|
||||
return "Action for case C"
|
||||
|
||||
|
||||
def case_default():
|
||||
return "Default action"
|
||||
|
||||
|
||||
def switch_funtion_dice(case):
|
||||
switer = {"A": case_a, "B": case_b, "C": case_c}
|
||||
fn = switer.get(case, case_default)
|
||||
return fn()
|
||||
|
||||
|
||||
result = switch_funtion_dice("A")
|
||||
print(result)
|
||||
result = switch_funtion_dice("F")
|
||||
print(result)
|
||||
|
||||
|
||||
# 自 Python 3.10 起,官方引入了结构化匹配(match 语句),可以原生实现类似 switch 的多分支选择功能。match 让代码更加优雅、可读性更强,尤其适用于分支较多、需要解构或复杂条件匹配的场景。
|
||||
|
||||
|
||||
def switch_match(case):
|
||||
"""
|
||||
使用 Python 3.10+ 的 match 语句实现 switch 功能
|
||||
这是最现代和强大的方法
|
||||
"""
|
||||
match case:
|
||||
case "A":
|
||||
return "Case A"
|
||||
case "B":
|
||||
return "Case B"
|
||||
case "C":
|
||||
return "Case C"
|
||||
case _:
|
||||
return "Default case"
|
||||
|
||||
|
||||
result = switch_match("A")
|
||||
print(result)
|
||||
result = switch_match("F")
|
||||
print(result) # Default case
|
||||
|
||||
|
||||
# 数值范围匹配
|
||||
def grade_evaluator(sorce):
|
||||
grade_map = {
|
||||
range(90, 101): "A",
|
||||
range(80, 90): "B",
|
||||
range(70, 80): "C",
|
||||
range(60, 70): "D",
|
||||
}
|
||||
for score_range, grade in grade_map.items():
|
||||
if sorce in score_range:
|
||||
return grade
|
||||
|
||||
return "F"
|
||||
|
||||
|
||||
# 测试成绩评估
|
||||
scores = [
|
||||
{"scorce": 95},
|
||||
{"scorce": 85},
|
||||
{"scorce": 75},
|
||||
{"scorce": 65},
|
||||
{"scorce": 55},
|
||||
]
|
||||
|
||||
for item in scores:
|
||||
grade = grade_evaluator(item["scorce"])
|
||||
item["grade"] = grade
|
||||
|
||||
print(scores)
|
||||
|
||||
|
||||
def greet(name, msg="Hello"):
|
||||
print(f"{msg}, {name}!")
|
||||
|
||||
|
||||
greet("Alice") # 输出:Hello, Alice!
|
||||
greet("Bob", "Hi") # 输出:Hi, Bob!
|
||||
|
||||
|
||||
num_enough = 10
|
||||
print(num_enough is False)
|
||||
Reference in New Issue
Block a user