You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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")

额外优化说明

  1. 移除了原代码中无意义的变量赋值(如a = print(...)),直接调用print()即可
  2. 修正了原代码中的拼写错误:numer改为number,ia改为is
  3. 使用f-string替代format(),让字符串拼接更简洁直观
  4. 增加了除数为0的判断,避免除法操作抛出异常(可选功能)

内容的提问来源于stack exchange,提问作者Shubham Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:57:25