- ·上一篇内容:Python名称空间与变量作用域
- ·下一篇内容:Python中使用max()函数求一组数据的最大值
Python中switch语句的替代方法
在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的运行截图如下:
二、使用字典来替代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))
输出截图如下:
从上面的例子中可以看出,使用if...else形式,代码易读性更强。
本文(完)
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。