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

Python简易计算器程序如何实现用户可重复计算的功能

Python计算器支持多次计算的修改方法

你现有代码仅能执行单次计算,要实现计算完成后可发起新计算的效果,只需要给核心计算流程套上外层循环,同时修复原有代码的几个隐性bug即可。

原有代码的已知问题

  • 加法函数命名存在笔误:submisstion语义和加法无关,属于拼写错误
  • 减法分支调用函数时参数传递错误:subtract(num1)仅传入1个参数,运行时会触发参数缺失报错
  • 除法逻辑未做除零校验,当输入0作为除数时程序会直接崩溃
  • 无循环控制逻辑,单次计算执行完后进程就会直接退出

具体修改实现

使用while True无限循环包裹完整的「输入-计算-输出」流程,每轮计算结束后增加用户选择环节,用户选择继续则回到循环起点重新接收输入,选择退出则跳出循环终止程序。
修改后的完整可运行代码如下:

# 运算函数定义
def multiplication(num1, num2):
    return num1 * num2
def addition(num1, num2):
    return num1 + num2
def subtract(num1, num2):
    return num1 - num2
def div(num1, num2):
    # 新增除零判断
    if num2 == 0:
        return "计算错误:除数不能为0"
    return num1 / num2
def power(num1, num2):
    return num1 ** num2

# 外层循环实现多次计算
while True:
    # 增加输入异常捕获,避免非数字输入导致程序崩溃
    try:
        num1 = float(input("请输入第一个运算数:"))
        operator = input("请输入运算符(支持 + - * / ^):").strip()
        num2 = float(input("请输入第二个运算数:"))
    except ValueError:
        print("输入无效,请输入合法数字\n")
        continue

    # 执行对应运算
    if operator == "*":
        result = multiplication(num1, num2)
    elif operator == "+":
        result = addition(num1, num2)
    elif operator == "-":
        result = subtract(num1, num2)
    elif operator == "/":
        result = div(num1, num2)
    elif operator == "^":
        result = power(num1, num2)
    else:
        result = "输入错误:不支持当前运算符"
    
    print(f"计算结果:{result}\n")

    # 询问是否继续计算
    next_calc = input("是否开始新计算?输入y继续,输入其他任意内容退出:").strip().lower()
    if next_calc != "y":
        print("计算器已退出")
        break

核心逻辑说明

  • while True会构造一个不会自动终止的循环结构,单次计算流程全部放在循环内部,执行完一轮后默认回到循环起始位置
  • 每轮计算结束后增加交互判断,只有用户明确输入y才会开启下一轮计算,输入其他内容时执行break语句直接跳出循环,结束程序运行
  • 新增的异常捕获、除零判断属于配套的稳定性优化,避免用户误输入导致程序直接退出

内容的提问来源于stack exchange,提问作者Hazem Abdulazim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:45:42