Вопрос-Ответ

What is the difference between '/' and '//' when used for division?

В чем разница между '/' и '//' при использовании для разделения?

Есть ли преимущество в использовании одного над другим? В Python 2 они оба, похоже, возвращают одинаковые результаты:

>>> 6/3
2
>>> 6//3
2
Переведено автоматически
Ответ 1

В Python 3.x, 5 / 2 вернет 2.5 и 5 // 2 вернет 2. Первое - это деление с плавающей запятой, а второе - деление по этажам, иногда также называемое целочисленным делением.

В Python 2.2 или более поздней версии в строке 2.x для целых чисел нет разницы, если вы не выполните from __future__ import division , что заставляет Python 2.x использовать поведение 3.x .

Независимо от будущего импорта, 5.0 // 2 вернется2.0, поскольку это результат операции разделения по этажам.

Подробное описание можно найти на PEP 238: Изменение оператора деления.

Ответ 2

Разъяснение Python 2.x:

Чтобы пояснить для строки Python 2.x, / не является ни разделением по этажам, ни истинным разделением.

/ это разделение по этажам, когда оба аргумента являются int, но это истинное разделение, когда любой из аргументов является float.

Ответ 3

// реализует "разделение по этажам", независимо от вашего типа. So 1.0/2.0 даст 0.5, но оба 1/2, 1//2 и 1.0//2.0 дадут 0.

Подробнее см. PEP 238: Изменение оператора деления.

Ответ 4

/ → Деление с плавающей запятой

// → Разделение по этажам

Давайте посмотрим несколько примеров как в Python 2.7, так и в Python 3.5.

Python 2.7.10 против Python 3.5

print (2/3)  ----> 0                   Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5

Python 2.7.10 против Python 3.5

print (4/2)  ----> 2         Python 2.7
print (4/2) ----> 2.0 Python 3.5

Теперь, если вы хотите получить (в Python 2.7) тот же результат, что и в Python 3.5, вы можете сделать следующее:

Python 2.7.10

from __future__ import division
print (2/3) ----> 0.6666666666666666 # Python 2.7
print (4/2) ----> 2.0 # Python 2.7

В то время как нет никакой разницы между разделением по этажам как в Python 2.7, так и в Python 3.5.

138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0 # Python 3.5
4//3 ---> 1 # Python 2.7
4//3 ---> 1 # Python 3.5
python