博客 / 詳情

返回

Python 的內置函數 divmod

Python 的內置函數 divmod() 是一個非常有用的數學運算函數,它可以同時返回一個除法運算的商和餘數。該函數接收兩個數字參數,返回一個包含商和餘數的元組。

函數語法

divmod(a, b)

參數説明

  • a:被除數(dividend)
  • b:除數(divisor)

返回值

返回一個元組 (quotient, remainder),其中:

  • quotient 是商(即 a // b 的結果)
  • remainder 是餘數(即 a % b 的結果)

使用示例

  1. 整數運算

    result = divmod(10, 3)
    print(result)  # 輸出:(3, 1)

    這裏 10 除以 3 的商是 3,餘數是 1

  2. 浮點數運算

    result = divmod(10.5, 3)
    print(result)  # 輸出:(3.0, 1.5)

    浮點數運算時,商和餘數也會是浮點數。

  3. 負數運算

    result = divmod(-10, 3)
    print(result)  # 輸出:(-4, 2)

    負數的除法運算遵循 Python 的取整規則。

應用場景

  1. 時間轉換
    將秒數轉換為小時、分鐘和秒:

    total_seconds = 3661
    hours, remainder = divmod(total_seconds, 3600)
    minutes, seconds = divmod(remainder, 60)
    print(f"{hours}小時 {minutes}分鐘 {seconds}秒")  # 輸出:1小時 1分鐘 1秒
  2. 分頁計算
    計算總頁數:

    total_items = 23
    items_per_page = 5
    pages, remaining = divmod(total_items, items_per_page)
    if remaining > 0:
        pages += 1
    print(f"總頁數:{pages}")  # 輸出:總頁數:5

注意事項

  • 除數 b 不能為 0,否則會引發 ZeroDivisionError 異常。
  • 對於複數運算,divmod() 不可用。

與單獨使用 //% 的對比

雖然 divmod() 的功能可以通過分別使用 //% 來實現,但 divmod() 的優勢在於:

  1. 只需一次函數調用,性能更高
  2. 代碼更簡潔易讀
  3. 保證商和餘數是基於同一個除法運算的結果

總之,divmod() 是一個高效且實用的內置函數,特別適合需要同時獲取商和餘數的場景。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.