Python Modulo — оператор деления по модулю (%)

D этом уроке вы узнаете о modulo операторе(%) и о том, как его эффективно использовать для деления по модулю в Python.

Содержание

Знакомство с оператором (%) в 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}
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *