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

如何实现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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:24:48