我無意中寫道:的= + 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