Python的整除和取余


最近做題發現-123%10=7,於是查閱了一下python的取余機制,這里記錄。

參考:https://blog.csdn.net/sun___M/article/details/83142126

//:向下取整

int():向0取整

正數的取余比較直接:

print(123%10) #3

這里結果為3。

但是換為負數取余,情況就有所不同: 

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

這個通過公式我們也能清楚地計算出來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM