我无意中写道:的= + Python的运算符语法正确
total_acc =+ accuracy
代替:
total_acc += accuracy
我搜索网,但没有找到anything。那么发生了什么,为什么Python认为我的意思是我正在输入?
电脑相信我们太多。 :)
我无意中写道:的= + Python的运算符语法正确
total_acc =+ accuracy
代替:
total_acc += accuracy
我搜索网,但没有找到anything。那么发生了什么,为什么Python认为我的意思是我正在输入?
电脑相信我们太多。 :)
这是一样的,如果你像total_acc = -accuracy
那样做,除了正面而不是负面。它基本上与total_acc = accuracy
相同,因为在值之前添加+并不会改变它。
这就是所谓的元运算符因为只有一个参数(例如:+a
),而不是两个(例如:a+b
)。
This link解释它多一点。
如果您有兴趣尽早发现此类错误,可以使用静态代码分析来完成此操作。例如,flake8
:
$ cat test.py
total_acc = 0
accuracy = 10
total_acc =+ accuracy
$ flake8 test.py
test.py:4:12: E225 missing whitespace around operator
在这种情况下,抱怨+
后的额外空间,以为你实际上意味着total_acc = +accuracy
。这会帮助你更早地发现问题。
FYI,pylint
也可以捕捉到。
你的答案增加了*真正*这里特别的东西,你应该得到upvote²! – gsamaras
'total_acc = +准确性'是'total_acc = +准确性' – Clodion
哦,所以当你想要负值时,你不要做*( - 1),谢谢@Clodion!不知道。 – gsamaras
[关于在Python3中使用空格与一元运算符的逻辑]的可能重复(http://stackoverflow.com/questions/35208351/logic-regarding-the-use-of-spaces-with-unary-operators-in- python3) – zondo