Что // означает в Python

Операторы существуют во всех языках программирования и выполняют основную функцию для выполнения различных операций со значениями и переменными.

Хотя в Python существует много типов операторов, в этой статье мы сосредоточимся только на одном типе операторов: арифметическом операторе.

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

В этом руководстве будет обсуждаться один из таких арифметических операторов, оператор деления этажей.

Используйте оператор // в Python для Floor Division

Оператор //, также известный как оператор деления по этажам, относится к категории арифметических операторов и представляет собой не что иное, как оператор деления, который выдает целое число на выходе и отбрасывает остаток.

Процесс целочисленного деления в Python отличается от других популярных языков программирования, учитывая, что он округляется до отрицательной бесконечности, а не до нуля.

Оператор // был представлен программистам в Python 3 для обеспечения стабильно работающего оператора целочисленного деления. В Python 3 и выше оператор / или одинарного деления выполняет деление с плавающей запятой, даже если принятые аргументы являются целыми числами.

В версиях Python до запуска оператора // при делении двух целых чисел деление этажа по умолчанию производилось с помощью оператора /.

В следующем коде показано использование оператора разделения этажей.

x = 15
y = 4
ans = x // y
print(ans)

Выход:

3

Оператор единого деления имеет тенденцию вести себя ненормально и генерировать неточные ответы при работе с огромными числами. Введение деления по этажам или оператора // маскирует этот недостаток единственного деления или оператора /.

Следующий код показывает разницу между обоими операторами при работе с большим числом.

x = 50000000000
  
a1 = int(x * (x + 3) / 2)
a2 = x * (x + 3) // 2
  
print("Using single division operator: ", a1)
print("Using floor division operator: ", a2)

Выход:

Using single division operator:  1250000000074999922688
Using floor division operator:  1250000000075000000000

В этом случае оператор деления по этажам возвращает правильный результат, а оператор деления на единицу не может предоставить точные значения.

Кроме того, оператор // обеспечивает до 3 раз лучшую производительность, чем оператор /. Это помогает значительно ускорить выполнение кода.