SyntaxError - 无法分配给运算符

SyntaxError - can't assign to operator

  File "solution.py", line 12
    Rate=8.45 and S=75 and D=tempUnit-150
        ^
SyntaxError: can't assign to operator

完整代码:

tempUnit = int(input())
if tempUnit <= 50:
    Rate = 2.60 and S = 25
    print("Electricity Bill =", tempUnit*Rate + S)
elif tempUnit > 50 and tempUnit <= 100:
    Rate = 3.25 and S = 35 and D = tempUnit-50
    print("Electricity Bill =", 50*2.60+D*Rate+S)
elif tempUnit > 100 and tempUnit <= 200:
    Rate = 5.26 and S = 45 and D = tempUnit-100
    print("Electricity Bill =", 50*2.60+50*3.25+D*Rate + S)
elif tempUnit > 200:
    Rte = 8.45 and S = 75 and D = tempUnit-150
    print("Electricity Bill =", 50*2.60+50*3.25+100*5.26+D*Rte + S)
else:
    print("Invalid Input")

伙计们,我无法弄清楚这里的问题。只是 python 的初学者,将不胜感激。

您似乎在尝试比较值的同时还分配它们。 (python 确实有一个运算符,实际上称为海象运算符,但从外观上看,您似乎只想为变量赋值)。

Rte = 8.45 and S = 75 and D = tempUnit-150

必须

Rate = 8.45
S = 75
D = tempUnit-150

Rate, S, D = 8.45, 75, tempUnit-150

and 是组合 表达式的运算符 .

Python 中的赋值是 语句

允许链式赋值; a = b = c = d 等同于

a = d
b = d
c = d

从左到右执行作业。

abc 中的每一个都需要是一个有效的目标,而 Rate 是一个有效的目标,像 8.45 and S75 and D 不是。

如果要进行三个赋值,只需将它们放在三个单独的语句中即可:

Rate = 8.45
S = 75
D = tempUnit-150

虽然您可以将简单的语句与分号结合起来

Rate = 8.45; S = 75; D = tempUnit - 150

并使用元组 (un)packing 在单个语句中进行多项赋值

Rate, S, D = 8.45, 75, tempUnit - 150
# Equivalent to
#   t = 8.45, 75, tempUnit - 150
#   Rate, S, D = t

在这里都不会被认为是好的风格。