python中 为什么
‘>>> -5%3
1
’>> 5%-3
-1
原来,python中,符号 % 其实是取模,不是取余。
取余与取模的差别:
当两个数均为正数是,取余与取模的结果是一致的,而当两个数一正一负时结果就不一样了。
>>> 5%3 2
>>> -5%3 1 >>> 5%-3 -1
notes:
余数的正负号与除数一致 余数=被除数-被除数//除数*除数。
而//是整除,对于python语言//是向下取整,即向负无穷大方向取整,结果是不大于商的最大整数。
5除以-3的商是-1.66,不大于-1.66的最大整数是-2,所以5//-3等于-2。
所以5%-3=5-(5//-3)(-3)=5-(-2)(-3)=5-6=-1。