Python语言本身没有原生的switch-case语句,但可以用字典模拟switch-case的功能。以下是用字典模拟switch-case语句的方法。
使用字典模拟switch-case语句的步骤
步骤一:创建一个字典
在字典中将需要判断的值作为键(key)存储,将对应的处理方法作为值(value)存储。
switch_case = {
"value1": method1,
"value2": method2,
"value3": method3
}
键(key) | 值(value) |
---|---|
“value1” | method1 |
“value2” | method2 |
“value3” | method3 |
步骤二:执行字典的get()方法
通过get()方法获取需要执行的方法,如果字典中没有对应的值,则返回一个默认值,比如None
。
result = switch_case.get(value, default)
步骤三:执行方法
如果获取到了对应的方法,则执行这个方法。
if result:
result()
else:
print("No matched value in switch-case")
示例一:根据颜色返回对应的RGB值
def red():
print("RGB value for red is (255,0,0)")
def green():
print("RGB value for green is (0,255,0)")
def blue():
print("RGB value for blue is (0,0,255)")
switch_case = {
"red": red,
"green": green,
"blue": blue
}
color = input("Please input a color: ")
switch_case.get(color, lambda: "Invalid color")()
示例二:计算器
def add(a, b):
print(a + b)
def subtract(a, b):
print(a - b)
def multiply(a, b):
print(a * b)
def divide(a, b):
print(a / b)
calculator = {
"+": add,
"-": subtract,
"*": multiply,
"/": divide
}
operator = input("Please enter an operator (+,-,*,/): ")
if operator in calculator:
num1 = float(input("Please enter first number: "))
num2 = float(input("Please enter second number: "))
calculator[operator](num1, num2)
else:
print("Invalid operator")
以上是用Python字典模拟switch-case的方法,可以根据实际需求进行拓展和改进。