如何实现Python计算器的重置功能?输入含$时触发重置
Python计算器重置功能实现
以下是修改后的代码,实现了要求的重置功能:当输入第一个/第二个数字时输入$,或数字末尾带$(如5$、20$)时触发计算器重置,回到初始菜单。
# 算术运算函数 def add(a, b): return a + b # 两数相加 def subtract(a, b): return a - b # 第一个数减第二个数 def multiply(a, b): return a * b # 两数相乘 def divide(a, b): if b == 0: return None else: return a / b # 第一个数除以第二个数 def power(a, b): return a ** b # 第一个数的第二个数次幂 def remainder(a, b): if b == 0: return None else: return a % b # 第一个数除以第二个数的余数 # 运算选择与执行函数 def select_op(choice): global a, b if choice == "+": result = input_function() if result is None: return print(f"{a} + {b} = {add(a, b)}") elif choice == "-": result = input_function() if result is None: return print(f"{a} - {b} = {subtract(a, b)}") elif choice == "*": result = input_function() if result is None: return print(f"{a} * {b} = {multiply(a, b)}") elif choice == "/": result = input_function() if result is None: return if b == 0: print("除数不能为0") print(f"{a} / {b} = {divide(a, b)}") elif choice == "^": result = input_function() if result is None: return print(f"{a} ^ {b} = {power(a, b)}") elif choice == "%": result = input_function() if result is None: return if b == 0: print("除数不能为0") print(f"{a} % {b} = {remainder(a, b)}") elif choice == "#": # 输入#时终止程序 return -1 elif choice == "$": # 输入$时直接重置 print("已重置计算器") return None else: print("无法识别的操作符") # 输入两个操作数的函数,支持重置触发 def input_function(): global a, b # 处理第一个数字输入 num1_input = input("请输入第一个数字: ").strip() if "$" in num1_input: print("触发重置") return None # 处理第二个数字输入 num2_input = input("请输入第二个数字: ").strip() if "$" in num2_input: print("触发重置") return None # 转换为浮点数并赋值给全局变量 try: a = float(num1_input) b = float(num2_input) return a, b except ValueError: print("输入的不是有效数字,已重置") return None # 主循环,持续运行直到用户选择终止 while True: print("请选择操作:") print("1. 加法 : + ") print("2. 减法 : - ") print("3. 乘法 : * ") print("4. 除法 : / ") print("5. 幂运算 : ^ ") print("6. 取余 : % ") print("7. 终止程序 : # ") print("8. 重置计算器: $ ") # 获取用户选择 choice = input("请输入操作符(+,-,*,/,^,%,#,$): ").strip() print(f"你选择的操作符是: {choice}") op_result = select_op(choice) if op_result == -1: print("程序已终止") exit()
关键修改说明
- 输入检测逻辑:在
input_function中先捕获输入字符串,检查是否包含$,一旦检测到就触发重置并返回None - 运算分支适配:每个运算执行前都会检查输入函数的返回值,若为
None则直接终止当前运算流程,回到主菜单 - 全局变量保留:沿用原代码的全局变量
a、b存储输入的数字,符合需求要求 - 异常处理补充:增加了无效数字输入时的重置提示,提升使用体验
内容的提问来源于stack exchange,提问作者Haritha Thushanka
相关产品推荐
相关产品推荐

