【錯誤記錄】Python 負數取余問題


  1. print( -123%10)   # 輸出 7
     
  2. 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