首页 > 开发 > Python > 正文

Python中switch语句的替代方法

2023-04-25 12:32:05
字体:
来源:转载
供稿:网友

在Python中,没有提供与Java、C#等语言中类似的switch语句,其主要原因是switch语句不会提供更有价值的功能。在实际中,我们可以根据实际情况灵活运用其它方法来解决该问题。

本文给出两种替代方法。

一、使用if...else语句来实现相关功能

下面这个例子是根据用户选择的不同运算方式对两个整数执行对应的运算。

v1 = input("请输入第1个数:")
v2 = input("请输入第2个数:")

x = int(v1)
y = int(v2)

print("请选择操作:/n 1-加法(+)/n 2-减法(-)/n 3-乘法(×)/n 4-除法(÷):")
choice = input("请输入您的操作:")

if choice == "1":
    print(f'{x} + {y} = {x+y}')
elif choice == "2":
    print(f'{x} - {y} = {x-y}')
elif choice == "3":
    print(f'{x} × {y} = {x*y}')
elif choice == "4":
    print(f'{x} ÷ {y} = {x/y}')
else:
    print("选择无效")

在Python 3.8.2 IDLE的运行截图如下:

Python中switch替代方案

二、使用字典来替代switch

Python中的字典类型使用键值对来存储数据,我们可以根据这一特点来替代switch语句,下面这个例子是对上面例子的一个改写:

v1 = input("请输入第1个数:")
v2 = input("请输入第2个数:")

x = int(v1)
y = int(v2)

print("请选择操作:/n 1-加法(+)/n 2-减法(-)/n 3-乘法(×)/n 4-除法(÷):")
choice_dict = {'1':lambda x,y: x+y,'2':lambda x,y: x-y,'3':lambda x,y: x*y,
                        '4':lambda x,y: x/y}
choice_op = input("请输入您的操作:")
print(choice_dict.get(choice_op,lambda x,y:'选择无效')(x,y))

输出截图如下:

Python使用字典代替switch

从上面的例子中可以看出,使用if...else形式,代码易读性更强。

本文(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表