为什么我收到 TypeError: Cannot unpack non-iterablebuiltin_function_or_method object?

mhi*_*ham 5 python python-3.x

我是编码新手,我从 python 开始。我正在尝试制定一种方法,该方法将采用方程并求解未知变量。它仅适用于一个方程(一个运算符),但当我试图使其基于运算符返回值时,它不起作用。

这有效:

def solveforx(y):
    x, add, num1, equal, num2 = y.split()

    # convert the strings into ints
    num1, num2 = int(num1), int(num2)
    # convert the result into a string and join it to the string "x = "
    return "x = "+ str(num2 - num1)

print(solveforx("X + 5 = 9"))
Run Code Online (Sandbox Code Playgroud)

这没有:

def solveforx(y):
    x, op, num1, equal, num2 = y.split

    num1, num2 = int(num1), int(num2)

    if op == "+":
        return "x = " + str(num2 - num1)
    elif op == "-":
        return "x = " + str(num1 + num2)
    elif op == "*":
        return "x = " + str(num2/num1)
    elif op == "/":
        return "x = " + str(num1*num2)
    else:
        return "wrong operator"

print(solveforx("X + 5 = 9"))
Run Code Online (Sandbox Code Playgroud)

类型错误:无法解压不可迭代的builtin_function_or_method对象

Cor*_*ane 5

您忘记了后面的括号y.split,因此您尝试解压该方法split而不是其实际结果。

它应该是

x, op, num1, equal, num2 = y.split()
Run Code Online (Sandbox Code Playgroud)