Python正在做字符串乘法,我期望它做數字乘法,我不知道爲什麼。Python字符串格式化和字符串乘法奇數
>>> print('%d' % 2 * 4)
2222
>>> print('%d' % (2 * 4))
8
即使將類型強制爲整數也不做任何事情。 (我知道這是多餘的,但它是一個白癡檢查對我來說:
>>> print('%d' % int(2) * int(4))
2222
很顯然,我解決我的問題(加上括號做它),但是這是怎麼回事。如果這僅僅是一個怪癖,我有什麼打算?請記住,這很好,但我寧願瞭解這背後的邏輯
不像接受我自己的答案那樣優雅,所以卡爾得到最簡潔和正確答案的檢查。 – Schof 2009-08-21 02:09:25
「所以它們從左到右」具體來說,這是因爲「*」,「%」組的操作符具有左關聯性。 「**」組從右向左 – newacct 2009-08-21 05:50:25
「您正在經歷運營商優先級。」那是爲了看醫生嗎? – balpha 2009-08-21 10:41:19