12k
All articles

Что означает `//` в Python? (С примерами)

Оператор '//' в Python выполняет деление с округлением вниз до целого; статья показывает его применение с float, циклами и пагинацией.

OpenReplay Team
OpenReplay Team
Что означает `//` в Python? (С примерами)

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

Например:

print(10 // 3)  # Вывод: 3
print(-10 // 3) # Вывод: -4

Ключевые выводы

  • // выполняет целочисленное деление, то есть округляет вниз результат.
  • Работает с целыми числами и числами с плавающей точкой.
  • Всегда округляет в сторону отрицательной бесконечности (-∞).

Понимание целочисленного деления (//)

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

Пример:

print(7 // 2)   # Вывод: 3 (вместо 3.5)
print(-7 // 2)  # Вывод: -4 (округление в сторону -∞)

Как // обрабатывает числа с плавающей точкой?

Даже если один из операндов является числом с плавающей точкой, результат остается округленным вниз, но в формате с плавающей точкой:

print(7.0 // 2)   # Вывод: 3.0 
print(-7.5 // 2)  # Вывод: -4.0

Разница между / и //

Оператор Описание Пример / Обычное деление (возвращает число с плавающей точкой) 5 / 2 = 2.5 // Целочисленное деление (округляет вниз) 5 // 2 = 2

Когда использовать //?

  • Когда нужны только целые числа (например, при подсчете элементов).
  • Избежание ошибок точности чисел с плавающей точкой (например, при индексации массивов).
  • Обеспечение целочисленных результатов в циклах.

Пример: Использование // для разбивки на страницы:

items_per_page = 10
total_items = 95

pages = total_items // items_per_page
print(pages)  # Вывод: 9

Часто задаваемые вопросы

Всегда ли `//` возвращает целое число?

Нет, если один из операндов является числом с плавающей точкой, результат будет числом с плавающей точкой.

Почему `-10 // 3` возвращает `-4`, а не `-3`?

Потому что `//` округляет в сторону отрицательной бесконечности (`-∞`).

Эквивалентно ли `//` выражению `math.floor(a / b)`?

Да, `a // b` эквивалентно `math.floor(a / b)`.

Заключение

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

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.