Python Glossary English

все Python 3Арифметика и операторыфункция

divmod()

числа

Встроенная функция, возвращающая кортеж (частное, остаток) — результат целочисленного деления и остатка. Эффективнее двух отдельных операций.

Синтаксис

divmod(a, b) -> (a // b, a % b)

Главный сюрприз — отрицательные числа: деление округляется вниз, к минус бесконечности, поэтому divmod(-7, 2) даёт (-4, 1), а не (-3, -1), как привыкли в C или Java; знак остатка всегда совпадает со знаком делителя. Брать divmod стоит там, где обе части нужны сразу — перевод секунд в часы и минуты, разбивка на страницы; ради одного значения короче и понятнее просто // или %.

Примеры

print(divmod(10, 3))  # → (3, 1)
h, m = divmod(150, 60)
print(f"{h} ч {m} мин")  # → 2 ч 30 мин
pages, rem = divmod(105, 10)
print(f"{pages} страниц, остаток {rem}")  # → 10 страниц, остаток 5
q, r = divmod(17, 5)
print(f"17 = 5 * {q} + {r}")  # → 17 = 5 * 3 + 2
print(divmod(-7, 2))  # → (-4, 1) (знак остатка — как у делителя)
print(divmod(3.5, 1.5))  # → (2.0, 0.5) (работает и с float)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности