小编典典

Python中带有负操作数的整数除法和模运算

python

当我在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),但这似乎并没有为我清除一切。

-提前致谢!

编辑: 这些只是我对发生的事情的个人评估(以上),我知道,我完全没有了!


阅读 307

收藏
2020-12-20

共1个答案

小编典典

整数除法只是将最后获得的数字作为底数。

10/3  -> floor(3.33)  ->  3
-10/3 -> floor(-3.33) -> -4

(为什么要铺地板)


另一方面,模运算遵循 数学定义

2020-12-20