当我尝试在Python 2.7上使用%s上的运算符时,我不理解这个错误

时间:2016-07-13 00:13:11

标签: python python-2.7

我几天前开始编程。我在互联网上做了一些课程,我现在正在寻找一个简单的程序来解决三个规则(交叉乘法) 它如下:

    # Def variables

    print "a/b = c/d"
    print "Put in the values you know. Leave the one that you dont know with a '?' "
    a = raw_input ("A = ")
    b = raw_input ("B = ")
    c = raw_input ("C = ")
    d = raw_input ("D = ")

    # if statements

    if a == "?":
        "%s * %s / %s" % (c, b, d) = "a"
        print "a"

     # in work elif b == "?" 

当我运行时,它表示" ***无法分配给运营商,第13行和第34行; 这似乎是一个语法错误,但我真的没有得到它。谢谢你的耐心:)抱歉我的英文不好

2 个答案:

答案 0 :(得分:1)

"%s * %s / %s" % (c, b, d) = "a"语法无效。你不能在作业的左侧有这样的操作符,因为你试图为表达式的结果赋予一些东西 - 但这并没有真正意义......

你的意思是:

a = "%s * %s / %s" % (c, b, d)

答案 1 :(得分:0)

您的代码

"%s * %s / %s" % (c, b, d) = "a"

无效,因为您尝试将字符串“ a ”分配给另一个字符串。引号内的所有内容都是一个字符串。操作"%s * %s / %s" % (c, b, d)创建一个字符串,其中%s 被替换为c,b,d的值,例如:

print "%s * %s / %s" % (2, 3, 4)
OUTPUT: 2 * 3 / 4

但根据您的代码,您正在尝试计算并打印 a ,因此应该这样做:

a = c * b / d
print(a)