Python四则运算程序:输入无效选项时先获取数字的问题
修正Python加减乘除程序的逻辑问题
问题原因
你的代码逻辑顺序有误:在获取用户操作选择ip1后,无论选择是否合法,都会执行输入两个数字、预计算所有加减乘除结果的步骤,所以输入无效选项时,程序还是会先要求用户输入数字,之后才输出错误提示。
解决方案
调整代码执行顺序:先判断用户选择是否为1-4的有效选项,如果无效直接输出错误信息;如果有效,再执行输入数字、计算并输出结果的操作。
修正后的代码
# 打印操作菜单 print("[1]ADD") print("[2]Subtract") print("[3]Multiply") print("[4]Divide") ip1 = int(input("Enter your choice :")) # 先判断选择是否有效 if ip1 == 1: x = int(input("enter 1st number :")) y = int(input("enter 2nd number :")) result = x + y print(f"addition of {x} and {y} is {result}") elif ip1 == 2: x = int(input("enter 1st number :")) y = int(input("enter 2nd number :")) result = x - y print(f"subtraction of {x} and {y} is {result}") elif ip1 == 3: x = int(input("enter 1st number :")) y = int(input("enter 2nd number :")) result = x * y print(f"multiplication of {x} and {y} is {result}") elif ip1 == 4: x = int(input("enter 1st number :")) y = int(input("enter 2nd number :")) # 增加除数不为0的判断(可选优化) if y == 0: print("Error: Cannot divide by zero") else: result = x / y print(f"division of {x} and {y} is {result}") else: print("invalid parameter")
额外优化说明
- 移除了原代码中无意义的变量赋值(如
a = print(...)),直接调用print()即可 - 修正了原代码中的拼写错误:
numer改为number,ia改为is - 使用f-string替代
format(),让字符串拼接更简洁直观 - 增加了除数为0的判断,避免除法操作抛出异常(可选功能)
内容的提问来源于stack exchange,提问作者Shubham Yadav
相关产品推荐
相关产品推荐

