Функция divmod() в Python3

Python3 内置函数Встроенные функции Python3

Функция divmod() в Python принимает два числовых (не комплексных) параметра и возвращает кортеж (a // b, a % b), содержащий частное и остаток.

В Python 3.x эта функция не поддерживает комплексные числа.

Синтаксис функции

Функция divmod() принимает два параметра, обычно два числа, и возвращает кортеж, содержащий два значения. Первое значение — частное (то есть целая часть) от деления первого параметра на второй, а второе значение — остаток.

divmod(a, b)

Описание параметров:

  • a: число, не комплексное.
  • b: число, не комплексное.

Если оба параметра a и b являются целыми числами, результат, возвращаемый функцией, эквивалентен(a // b, a % b)。

Если один из параметров является числом с плавающей запятой, результат, возвращаемый функцией, эквивалентен (q, a % b), где q обычно равно math.floor(a / b), но также может быть на 1 меньше. Однако значение q * b + a % b будет очень близко к a.

Если результат a % b не равен 0, знак остатка совпадает со знаком параметра b. Если b положительно, остаток положителен; если b отрицательно, остаток также отрицателен, и 0 <= abs(a % b) < abs(b).

Пример

>>> divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(8, -2)
(-4, 0)
>>> divmod(3, 1.3)
(2.0, 0.3999999999999999)

Сценарии применения функции divmod()

divmod() очень полезна в таких сценариях, как преобразование времени и расчёт пагинации.

1. Преобразование времени. Например, преобразовать общее количество секунд в часы, минуты и секунды:

Пример

total_seconds = 3661
hours, remainder = divmod(total_seconds, 3600)
minutes, seconds = divmod(remainder, 60)
print(f{hours} часов {minutes} минут {seconds} секунд)  # Вывод: 1 час 1 минута 1 секунда

2. Расчёт пагинации. В системе пагинации divmod() можно использовать для вычисления общего количества страниц и количества записей на последней странице:

Пример

total_items = 101
items_per_page = 10
pages, remainder = divmod(total_items, items_per_page)
if remainder:
    pages += 1
print(fВсего страниц: {pages})  # Вывод: Всего страниц: 11

Меры предосторожности при использовании функции divmod()

Второй параметр функции divmod() не может быть 0, иначе будет вызвано исключение ZeroDivisionError.

Типы частного и остатка, возвращаемых функцией divmod(), зависят от типов входных параметров. Если входные параметры — целые числа, возвращаемые частное и остаток также являются целыми числами; если входные параметры — числа с плавающей запятой, возвращаемые частное и остаток также являются числами с плавающей запятой.

Python3 内置函数Встроенные функции Python3

Другие расширения