当我在Python 3.3.0中输入这些表达式时出现问题
-10 // 3 # -4 -10 % 3 # 2 10 // -3 # -4 10 % -3 # -2 -10 // -3 # 3
好像需要大约浮点数(-3.33)?并在整数除法中四舍五入,但是在模运算中它做的事情完全不同。似乎它返回余数+/- 1并仅根据负操作数所在的位置切换符号。即使在查看本网站上的其他答案之后,我也完全感到困惑!我希望有人也能清楚地解释这一点!这本书说出了一些提示:回想一下这个神奇的公式a =(a // b)(b)+(a%b),但这似乎并没有为我清除一切。
-提前致谢!
编辑: 这些只是我对发生的事情的个人评估(以上),我知道,我完全没有了!
整数除法只是将最后获得的数字作为底数。
10/3 -> floor(3.33) -> 3 -10/3 -> floor(-3.33) -> -4
(为什么要铺地板)
另一方面,模运算遵循 数学定义 。