Python如何实现计算器连续计算,且避免除零错误导致程序崩溃?
持续运行+除零错误修复后的计算器实现
def calculation(): # 捕获输入格式错误 try: num1 = float(input("请输入第一个运算数(输入q可退出程序):")) num2 = float(input("请输入第二个运算数:")) except ValueError: # 判断是否触发退出指令 input_val = num1 if 'num1' in locals() else num2 if str(input_val).lower() == 'q': print("程序已退出") exit() print("错误:请输入合法的数字") return op = input("请输入运算符(支持+、-、*、/):") if op == "+": print(f"计算结果:{num1 + num2}") elif op == "-": print(f"计算结果:{num1 - num2}") elif op == "/": # 捕获除零异常,避免程序崩溃 try: result = num1 / num2 print(f"计算结果:{result}") except ZeroDivisionError: print("错误:除数不能为零") elif op == "*": print(f"计算结果:{num1 * num2}") else: print("错误:输入的运算符不合法") if __name__ == "__main__": print("简易计算器已启动,每次计算完成后自动进入下一轮运算") # 无限循环实现持续运行,无需额外触发 while True: calculation() # 分隔每次计算的输出,提升可读性 print("-" * 30)
关键改动说明
- 持续运行实现:在外层添加
while True无限循环,每次计算完成后自动回到输入等待状态,无需手动触发下一次计算;额外增加了主动退出逻辑,输入q即可终止程序,符合使用习惯。 - 除零错误修复:给除法运算逻辑包裹
try-except ZeroDivisionError异常捕获块,触发除零操作时直接输出友好提示,不会导致程序崩溃退出。 - 额外兼容性优化:新增输入格式异常捕获,当用户输入非数字内容作为运算数时,也会输出提示而不是直接崩溃。
内容的提问来源于stack exchange,提问作者An613
相关产品推荐
相关产品推荐

