Задать вопрос
@avion123678

Оператор // в Python?

Здравствуйте, почему при выполнении операции 20 // 3 выводит 6, а при -20 // 3 выводит -7?
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
В Python целочисленное деление округляет вниз, чтобы остаток всегда был неотрицательным, сделано это для удобства. Комментарий Гвидо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@artem78
Потому что результат округляется до меньшего целого, а -7 меньше, чем -6,5.

В документации про оператор // об этом сказано в примечании:
The result is always rounded towards minus infinity: 1//2 is 0, (-1)//2 is -1, 1//(-2) is -1, and (-1)//(-2) is 0.

https://docs.python.org/3.6/library/stdtypes.html#...
Ответ написан
Комментировать
@rudikov
Если вкратце: берется целое число слева.
7//3 даст 2, так как ответ 2,(3). То есть до тройки еще не дошло.
-7//3 даст -3, так как ответ -2,(3). То есть до минус двойки не дошло.
7//-3 равнозначен -7//3, а -7//-3 равнозначен 7//3.
Ответ написан
Комментировать
@jenia0jenia
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы