我是python的新手,并且在不到一周前开始编码。我决定尝试构建一个diget计算器。我知道我的代码写得不是很好,建议也很受欢迎,但请不要讨厌它。那么现在到代码。我收到代码上的错误,说它无法分配opperator。我知道这意味着它无法使变量从字符串变为int。但我不知道如何解决它。我也在第25,28,31,34行收到错误。谢谢!
calculate = input("Enter the problem in the format x + y = z ")
opperations = ["+", "-", "*", "/"]
numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
space = " "
def opperation():
if opperations == "+":
A = 1
elif opperations == "-":
A = 2
elif opperations == "*":
A = 3
elif opperations == "/":
A = 4
if calculate[0] in numbers:
if len(calculate) > 1:
if calculate[1] == space:
calculate[0] = a
a = int(a)
calculate[4] = b
b = int(b)
if A == 1:
a + b = c
print (c)
elif A == 2:
a - b = c
print (c)
elif A == 3:
a * b = c
print(c)
elif A == 4:
a / b = c
print(c)
else:
print("Sorry invalid text")
else:
print("Sorry invalid text")
else:
print("Sorry invalid text")
else:
print("Sorry invalid text")
答案 0 :(得分:3)
您无法在作业的左侧中进行操作。您应该在右侧中执行操作:
c = a + b
c = a - b
此外,您在
行中使用b
calculate[4] = b
b = int(b)
在声明之前。你必须先申报。所以,你可能想在那里检查你的逻辑。
答案 1 :(得分:0)
您的问题是您以错误的方式使用=
运算符。它是如何工作的,它评估在右侧上的内容,并将其分配给左侧的 。因此,而不是a + b = c
,它应该是:
c = a + b
您尝试做的是将c
的值分配给表达式a + b
,这没有任何意义。
答案 2 :(得分:0)
您的问题是以下几点:
a + b = c
a - b = c
a * b = c
a / b = c
Python无法正常工作。您尝试执行(a + b) = c
,这与尝试相同,例如5 = c
。
如果您希望c
成为a
和b
上的操作的结果,则需要翻转这些行,即c = a + b
。