-
print( -123%10) # 輸出 7
-
print( -123%-10) # 輸出 -3
這里面第二條是我們一般意義上的取余操作。這里也特別標注一下,如果涉及到負數取余要用上述解決辦法。
那么我們看第一條,結果等於7。這個結果有點讓人摸不到頭腦,不過這個結果與Python的底層機制有關。
在Python中,取余的計算公式與別的語言並沒有什么區別:r=a-n*[a//n]
這里r是余數,a是被除數,n是除數。
不過在“a//n”這一步,當a是負數的時候,我們上面說了,會向下取整,也就是說向負無窮方向取整。這也就得到:
-123%10 = -123 - 10 * (-123 // 10) = -123 - 10 * (-13) = 7
這里還不得不提的是
print(123%-10)
這個情況,結果為:
-7