4
雖然代碼打高爾夫球我無意中發現了一個奇特的問題運算符優先級與字符串的運算方式相同嗎?
>>> print '%'+'-+'[1]+str(5)+'s'%'*'
Traceback (most recent call last):
File "<pyshell#178>", line 1, in <module>
print '%'+'-+'[1]+str(5)+'s'%'*'
TypeError: not all arguments converted during string formatting
我的假設是話務員評價從左至右發生,但在這種特殊情況下,似乎即使它的字符串操作,%
takes priority over+
,並嘗試在連接之前評估's'%'*'
並且失敗
這是一個已知的記錄行爲,或者還有一些對我而言並不明顯。
+1對於「其他任何情況都會造成可怕的混淆」 –
+1鏈接到文檔 – Abhijit