Python 中關于除法的三種運算符

  1. /:表示精確的真除法。魔法方法為?truediv。
    / 無需介紹

  2. //:表示地板除。魔法方法為?floordiv。
    // 被稱為地板除是因為其結果等價于對 / 的結果向下取整。設操作數 m 和 n 是整數,于是有關系

    m?//?n?=?floor(m?/?n)

    即便 m 或 n 是負數時,這一關系依然成立。例如

    In?:?5?//?2
    Out:?2
    
    In?:?-5?//?2
    Out:?-3
    
    In?:?5?//?-2
    Out:?-3
    
    In:?-5?//?-2
    Out:?2
  3. %:表示求模。魔法方法為?mod。

    % 的結果與 // 的結果密切相關,它們一定滿足

    q?=?m?//?n
    r?=?m?%?n
    q?*?n?+?r?=?m

    所以 % 的結果可以通過 r = m - q * n 計算得到。例如 -5 % 2 就等于 1。Python 中的 divmod 函數能夠同時返回 // 和 % 的結果,方便我們觀察結果。例如

    In?:?divmod(-5,?2)
    OUt:?(-3,?1)

    再擴展一下,即便 m 或 n 是浮點數,結果依然遵循上面的計算流程,不過此時 // 和 % 的結果都會變成浮點型。例如

    In?:?divmod(5.5,?2)
    Out:?(2.0,?1.5)
    
    In?:?divmod(-5.5,?2)
    Out:?(-3.0,?0.5)

    此外可以觀察到,在地板除的定義下,除數 n 和模 r 總是同號的。其它語言中 /、//(如果有的話)和 % 行為可能跟 Python 不同,使用時需要多加小心。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容