提问人:Ishan Dwivedi 提问时间:12/4/2021 最后编辑:dantistonIshan Dwivedi 更新时间:12/4/2021 访问量:693
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 的初学者,答案将不胜感激。
答:
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 和 不是。a
b
c
Rate
8.45 and S
75 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
在这里,两者都不会被认为是好的风格。
评论
Rate = 2.60 and S = 25
and