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
相关产品推荐
相关产品推荐

