%:取余 vs 取模

刚才发现,这个符号在python中表示取模,而在其他一些语言中,例如 Java、Javascript、Golang 等,表示的是取余。这两者有什么区别呢?

现象

计算下面这个式子:

-5 % 3
# 在 python 中,它等于 1
# 在 java 中,它等于 -2

计算

优势

python中经常会有切片操作,取模则可以简化这一操作,例如取一个长度为5的数组中倒数第3个元素,最直接的做法为 arr[-3],当然也可以写 arr[2]。事实上,如果你使用python计算 -3 % 5 你就能得到 2,正方向index和负方向index可以很轻易地转化。但是使用 java计算得到的却是 -3。

Leave a Comment