Оператор floor division (//) в Python с примерами

В этом уроке вы узнаете об операторах деления floor division (//) и modulo в Python.

Содержание

Введение в floor division Python

Предположим, у вас есть деление двух целых чисел:

101 / 4

В этом делении 101 называется числителем(N), а 4 — знаменателем(D).

Целочисленное деление 101/4 возвращает 25 с остатком 1. Другими словами:

101 / 4 = 25 with remainder 1

Или сформулируйте это по-другому:

101 = 4 * 25 + 1

Python использует два оператора // и %, которые возвращают результат деления:

101 // 4 = 25
101 % 4 = 1

// называется оператором floor division или div. А % называется оператором modulo или mod.

В этом руководстве основное внимание уделяется оператору floor division. Вы узнаете об операторе modulo в следующем уроке.

Операторы floor division и операторы modulo удовлетворяют следующему уравнению:

101 = 4 *(101 // 4) +(101 % 4)
101 = 4 * 25         + 1

Как правило, если N — числитель, а D — знаменатель, то данные операторы деления всегда удовлетворяют следующему уравнению:

N = D *( N // D) +(N % D)

Разделение на этажи в Python

Чтобы понять floor division, сначала нужно понять floor действительного числа. Это наибольшее целое число, меньшее или равное этому числу. Другими словами:

floor(r) = n, n is an integr and n <= r

Например, нижний предел 3,4 равен 3, поскольку 3 — это наибольшее целое число, меньшее или равное 3,4. floor 3.9 тоже 3. А floor 3 это 3 очевидно:

floor(3.4) = 4
floor(3.9) = 3
floor(3) = 3

Для положительных чисел было бы легко понять определение. Однако вам следует обратить внимание, когда речь идет об отрицательных числах.

Например, нижний предел -3,4 возвращает -4, а не -3 в зависимости от определения нижнего предела. Аналогично, нижний предел -3,9 также возвращает -4.

floor(-3.4) = -4
floor(-3.9) = -4
floor(-3) = -3

Поэтажное деление можно определить как:

n // d = floor(n/d)

Обратите внимание, что floor-деление числа не всегда совпадает с усечением. Floor division аналогично truncation, только если числа положительны.

Примеры операторов floor division в Python

В следующем примере используются операторы деления floor division с положительными и отрицательными целыми числами:

a = 10
b = 3

print(a//b)  # 3

a = -10
b = -3

print(a//b)  # 3

a = 10
b = -3
print(a//b)  # -4

a = -10
b = 3
print(a//b)  # -4

Выход:

3
3
-4
-4

В следующей таблице показано деление двух целых чисел a и b:

a b a // b
10 3 3
-10 -3 3
10 -3 -4
-10 3 -3

Функция Python math.floor()

Функция Floor() математического модуля возвращает деление двух целых чисел. Например:

from math import floor

a = 10
b = 3

print(a//b)  # 3
print(floor(a/b))  # 3

Выход:

3
3

Как ясно видно из вывода, функция Floor() возвращает тот же результат, что и оператор деления (//). Это также верно для отрицательных чисел:

from math import floor

a = 10
b = -3

print(a//b)  # -4
print(floor(a/b))  # -4

Выход:

-4
-4
Похожие посты
Добавить комментарий

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