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

Python简易计算器代码报IndentationError,求问题排查与修正

问题分析
  • 缩进错误:else块内的if语句缩进层级违规,Python要求同一代码块必须保持一致缩进,该if的缩进比上一行的num2赋值多了,导致语法报错。
  • 终止条件判断错误:原代码用select_op(choice) == -1判断终止,但实际要匹配的是输入的#,且select_op函数仅返回输入值,完全冗余,直接用choice变量即可。
  • 取余运算输出错误:取余分支的输出符号误写为+,应改为%。
  • 重置操作错误:return True不能在循环体中使用(return仅用于函数内部),且重置逻辑应跳过输入数字步骤,直接回到循环开头。
  • 冗余函数:select_op函数无实际作用,可直接删除。
修正后的代码
def add(num1, num2):
    return num1 + num2
def sub(num1, num2):
    return num1 - num2
def mul(num1, num2):
    return num1 * num2
def div(num1, num2):
    return num1 / num2
def power(num1, num2):
    return num1 ** num2
def rem(num1, num2):
    return num1 % num2

while True:
    print("Select operation.")
    print("1.Add      : + ")
    print("2.Subtract : - ")
    print("3.Multiply : * ")
    print("4.Divide   : / ")
    print("5.Power    : ^ ")
    print("6.Remainder: % ")
    print("7.Terminate: # ")
    print("8.Reset    : $ ")
    choice = input("Enter choice(+,-,*,/,^,%,#,$): ")
    
    if choice == "#":
        print("Done. Terminating")
        break
    if choice == "$":
        print("Resetting calculator...")
        continue
    
    # 仅选择运算操作时才要求输入数字,同时处理非数字输入异常
    try:
        num1 = float(input("Enter First Number  : "))
        num2 = float(input("Enter Second Number : "))
    except ValueError:
        print("Invalid number input! Please enter numeric values.")
        continue
    
    if choice == "+":
        print(num1, "+", num2, "=", add(num1,num2))
    elif choice == "-":
        print(num1, "-", num2, "=", sub(num1,num2))
    elif choice == "*":
        print(num1, "*", num2, "=", mul(num1,num2))
    elif choice == "/":
        print(num1, "/", num2, "=", div(num1,num2))
    elif choice == "^":
        print(num1, "^", num2, "=", power(num1,num2))
    elif choice == "%":
        print(num1, "%", num2, "=", rem(num1,num2))
    else:
        print("Invalid operation choice! Please try again.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:50:29