2014-06-22 79 views
0
-10 // 3 = -4 

10 // -3 = -4 

-10 % 3 = 2 

10 % -3 = -2 

我沒有得到這些操作的邏輯。Python中的運算符3x

10 // 3 = 3, but -10 // 3 = -4 

這是我無法理解的。

請解釋。

+2

[來自文檔](https://docs.python.org/3.4/reference/expressions.html#binary-arithmetic-operations):樓層劃分和模運算符通過以下標識連接:'x = =(x // y)* y +(x%y)' – Blender

+0

http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html –

回答

1

這是因爲蟒蛇四捨五入。 3.33333舍入爲3,-3,33333舍入爲-4。如果您希望將其舍入,請執行浮點除法,然後將float轉換爲int。

1

運營商//地板劃分運營商

-10/3的結果是-3.3333。然後,-10//3的結果將舍入到下一個整數(低於結果),因此結果將爲-4

+0

%operator with負整數? – user134627

+0

它不是整數部分,它是[floor division](http://legacy.python.org/dev/peps/pep-0238/),這個名字幾乎可以解釋這一切。 –