Python Modulo — оператор деления по модулю (%)
D этом уроке вы узнаете о modulo операторе(%) и о том, как его эффективно использовать для деления по модулю в Python.
- Знакомство с оператором (%) в Python
- Простые примеры с оператором деления по модулю в Python
- Практические примеры применения оператора(%) в Python
- 1) Использование оператора modulo для проверки, является ли число четным или нечетным
- 2) Использование оператора(%) для преобразования единиц измерения
Знакомство с оператором (%) в Python
Python использует знак процента (%) в качестве оператора modulo. Оператор модуля всегда удовлетворяет следующему уравнению:
N = D *( N // D) +(N % D)
В этом уравнении:
- N – числитель
- D – знаменатель
- // является оператором разделения дроби
- и % — оператор деления по модулю.
Если и N, и D являются целыми положительными числами, оператор возвращает остаток N/D. Однако для отрицательных чисел это не так. Поэтому вам всегда следует придерживаться приведенного выше уравнения.
Простые примеры с оператором деления по модулю в Python
В следующем примере показано, как использовать оператор (%) с положительными целыми числами:
a = 16 b = 5 m = a % b f = a // b # show the result print(f'{a} % {b} = {m}') # 1 print(f'{a} // {b} = {f}') # 3
Выход:
1 3
Для положительных чисел результат вполне очевиден. И вы можете быстро проверить уравнение:
16 = 5 *(16 // 5) + 16 % 5 16 = 5 * 3 + 1
Ниже показано, как использовать оператор деления по модулю с отрицательными целыми числами:
a = -16 b = 5 m = a % b f = a // b # show the result print(f'{a} % {b} = {m}') # 4 print(f'{a} // {b} = {f}') # -4
И уравнение удовлетворяется:
-16 = 5 *(-16 % 5) +(-16) % 5 -16 = 5 * -4 - 4
Практические примеры применения оператора(%) в Python
Давайте рассмотрим несколько практических примеров использования оператора (%).
1) Использование оператора modulo для проверки, является ли число четным или нечетным
Ниже определяется функция, которая использует modulo оператор(%), чтобы проверить, является ли число четным:
def is_even(num): return num % 2 == 0
И следующее определяет функцию, которая использует оператор(%), чтобы проверить, является ли число нечетным:
def is_odd(num): return num % 2 != 0
2) Использование оператора(%) для преобразования единиц измерения
В следующем примере используется оператор(%) для преобразования секунд в дни, часы, минуты и секунды. Это может быть удобно, если вы хотите разработать программу обратного отсчета:
from math import floor def get_time(total_seconds): return { 'days': floor(total_seconds / 60 / 60 / 24), 'hours': floor(total_seconds / 60 / 60) % 24, 'minutes': floor(total_seconds / 60) % 60, 'seconds': total_seconds % 60, } print(get_time(93750))
Выход:
{'days': 1, 'hours': 2, 'minutes': 2, 'seconds': 30}