Ответ 1
//
- оператор разделения полов. Он создает пол частного для его операндов, без округления с плавающей запятой для целых операндов. Это также иногда называют целым делением, даже если вы можете использовать его с поплавками, потому что деление целых чисел на /
используется для этого по умолчанию.
В Python 3 обычный оператор деления /
возвращает значения с плавающей запятой, даже если оба операнда являются целыми числами, поэтому для разделения полов необходим другой оператор. Это отличается от Python 2, где /
выполнял разделение полов, если оба операнда были целыми числами и делением с плавающей запятой, если хотя бы один из операндов был значением с плавающей запятой.
Оператор //
был впервые введен для обеспечения совместимости в прямом режиме в Python 2.2, когда было решено, что Python 3 должен обладать этой новой способностью. Вместе с возможностью включить поведение Python 3 через from __future__ import division
(также представленный в Python 2.2), это позволяет вам писать Python 3-совместимый код в Python 2.