Оператор floor division (//) в Python с примерами
В этом уроке вы узнаете об операторах деления floor division (//) и modulo в Python.
- Введение в floor division Python
- Разделение на этажи в Python
- Примеры операторов floor division в Python
- Функция Python math.floor()
Введение в 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