-10 // 3 = -4
10 // -3 = -4
-10 % 3 = 2
10 % -3 = -2
我沒有得到這些操作的邏輯。Python中的運算符3x
10 // 3 = 3, but -10 // 3 = -4
這是我無法理解的。
請解釋。
-10 // 3 = -4
10 // -3 = -4
-10 % 3 = 2
10 % -3 = -2
我沒有得到這些操作的邏輯。Python中的運算符3x
10 // 3 = 3, but -10 // 3 = -4
這是我無法理解的。
請解釋。
這是因爲蟒蛇四捨五入。 3.33333舍入爲3,-3,33333舍入爲-4。如果您希望將其舍入,請執行浮點除法,然後將float轉換爲int。
運營商//
是地板劃分運營商。
-10/3
的結果是-3.3333
。然後,-10//3
的結果將舍入到下一個整數(低於結果),因此結果將爲-4
。
%operator with負整數? – user134627
它不是整數部分,它是[floor division](http://legacy.python.org/dev/peps/pep-0238/),這個名字幾乎可以解釋這一切。 –
[來自文檔](https://docs.python.org/3.4/reference/expressions.html#binary-arithmetic-operations):樓層劃分和模運算符通過以下標識連接:'x = =(x // y)* y +(x%y)' – Blender
http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html –