Оператор // выполняет деление с округлением результата вниз, к минус бесконечности. Поэтому -7 // 3 равно -3, а не -2.
Как работает оператор целочисленного деления (//)?
Оператор // выполняет деление с округлением результата вниз, к минус бесконечности. Поэтому -7 // 3 равно -3, а не -2.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Оператор // выполняет деление с округлением результата вниз, к минус бесконечности. Поэтому -7 // 3 равно -3, а не -2.
Для положительных целых 7 // 3 даёт 2, остаток 7 % 3 равен 1. Для отрицательных важно правило пола: -7 = (-3) * 3 + 2.
Если один операнд float, результат обычно тоже float: 7.0 // 3 равно 2.0; вычисления подчиняются особенностям представления вещественных чисел. Деление на ноль вызывает ZeroDivisionError. Пользовательские классы могут реализовать __floordiv__ и задать собственное поведение, поэтому название «целочисленное» не означает обязательный тип int.