Python无法分配运算符错误

时间:2014-03-22 21:33:46

标签: python python-2.7 python-3.x

我是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")

3 个答案:

答案 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成为ab上的操作的结果,则需要翻转这些行,即c = a + b