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

如何实现让用户持续操作的简易计算器直至选择退出?

简易计算器代码修正

原代码问题梳理

  • 菜单打印语句存在多余转义符与引号,导致输出格式错乱
  • 循环条件逻辑错误:while (i>select) 中i初始值为0,select取值1-4,条件永远不成立,运算代码完全不执行
  • 未实现「重复操作直到用户选择退出」的核心需求,原代码仅执行一次流程就终止
  • 除法操作未处理除数为0的异常(可选优化项)

修正后的完整代码

def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mul(x, y):
    return x * y

def div(x, y):
    if y == 0:
        return "错误:除数不能为0"
    return float(x / y)

while True:
    # 打印清晰的操作菜单
    print("请选择操作:")
    print("1. 加法")
    print("2. 减法")
    print("3. 乘法")
    print("4. 除法")
    print("5. 退出")
    
    try:
        select = int(input("请输入操作编号(1-5):"))
    except ValueError:
        print("输入无效,请输入数字1-5\n")
        continue
    
    if select == 5:
        print("退出计算器")
        break
    
    # 校验操作编号是否合法
    if select not in [1,2,3,4]:
        print("无效操作编号,请重新选择\n")
        continue
    
    # 获取输入数值,处理非数字输入异常
    try:
        x = int(input("请输入第一个数字:"))
        y = int(input("请输入第二个数字:"))
    except ValueError:
        print("输入无效,请输入整数\n")
        continue
    
    # 执行对应运算并输出结果
    if select == 1:
        print(f"加法结果:{add(x, y)}\n")
    elif select == 2:
        print(f"减法结果:{sub(x, y)}\n")
    elif select == 3:
        print(f"乘法结果:{mul(x, y)}\n")
    elif select == 4:
        print(f"除法结果:{div(x, y)}\n")

关键修改说明

  1. 重构循环逻辑:用while True实现无限循环,直到用户选择5(退出)时执行break终止,满足「重复操作直到退出」的需求
  2. 修复菜单打印:移除多余转义符和引号,改用清晰的分行打印,提升可读性
  3. 修正运算执行逻辑:删除原错误的while (i>select)循环,直接在每次选择后执行运算并输出结果
  4. 增加异常处理:对输入非数字的情况捕获ValueError,避免程序崩溃
  5. 优化除法操作:增加除数为0的判断,返回友好错误提示
  6. 输入校验:对操作编号进行合法性校验,避免无效输入进入运算流程

修正后运行示例

请选择操作:
1. 加法
2. 减法
3. 乘法
4. 除法
5. 退出
请输入操作编号(1-5):2
请输入第一个数字:5
请输入第二个数字:6
减法结果:-1

请选择操作:
1. 加法
2. 减法
3. 乘法
4. 除法
5. 退出
请输入操作编号(1-5):5
退出计算器

内容的提问来源于stack exchange,提问作者Priyanshu Jugran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 02:30:32