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

  1. print( -123%10)   # 輸出 7
     
  2. print( -123%-10)  # 輸出 -3

這裏面第二條是咱們通常意義上的取餘操做。這裏也特別標註一下,若是涉及到負數取餘要用上述解決辦法。spa

那麼咱們看第一條,結果等於7。這個結果有點讓人摸不到頭腦,不過這個結果與Python的底層機制有關。code

在Python中,取餘的計算公式與別的語言並無什麼區別:r=a-n*[a//n]class

這裏r是餘數,a是被除數,n是除數。語言

不過在「a//n」這一步,當a是負數的時候,咱們上面說了,會向下取整,也就是說向負無窮方向取整。這也就獲得:di

-123%10 = -123 - 10 * (-123 // 10) = -123 - 10 * (-13) = 7co

這裏還不得不提的是block

print(123%-10)底層

這個狀況,結果爲:

-7

相關文章
相關標籤/搜索