SyntaxError - 无法分配给运算符

SyntaxError - can't assign to operator

提问人:Ishan Dwivedi 提问时间:12/4/2021 最后编辑:dantistonIshan Dwivedi 更新时间:12/4/2021 访问量:693

问:

  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 语法-错误 赋值-运算符

评论

0赞 Nico Haase 12/4/2021
请分享更多详细信息,例如所涉及的代码以及您解决问题的尝试。另外,请标记您正在使用的编程语言
2赞 Mark Lavin 12/4/2021
and's 的目的是什么?是否要执行所有三个任务?您可以用分号替换 and。
0赞 pho 12/4/2021
@Mark或只是将它们放在单独的行上。
1赞 pho 12/4/2021
@Ishan,为什么您认为将这些值分配给这些变量是正确的方法? 是一个布尔运算符,而不是行分隔符。Rate = 2.60 and S = 25and
0赞 Ishan Dwivedi 12/4/2021
我想我只是傻了

答:

3赞 uzumaki 12/4/2021 #1

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

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

评论

0赞 Ishan Dwivedi 12/4/2021
成功了。谢谢,伙计
1赞 chepner 12/4/2021 #2

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

Python 中的赋值是语句

允许链接式分配; 相当于a = b = c = d

a = d
b = d
c = d

从左到右执行任务。

但是,每个 、 和 都需要是有效的目标,而 while 是有效的目标,而表达式 like 和 不是。abcRate8.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

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