我是编码新手,我从 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对象
您忘记了后面的括号y.split,因此您尝试解压该方法split而不是其实际结果。
它应该是
x, op, num1, equal, num2 = y.split()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11381 次 |
| 最近记录: |