все 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Сообщить о неточности