В чем разница между '/' и '//' при использовании для деления? - PullRequest
391 голосов
/ 08 октября 2008

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

>>> 6/3
2
>>> 6//3
2

Ответы [ 13 ]

0 голосов
/ 06 июня 2019

Ответы выше хороши. Я хочу добавить еще один момент. До некоторых значений оба они приводят к одному и тому же частному. После этого оператор деления этажа (//) работает нормально, но не оператор деления (/).

 - > int(755349677599789174/2)
 - > 377674838799894592      #wrong answer
 - > 755349677599789174 //2
 - > 377674838799894587      #correct answer
0 голосов
/ 23 марта 2019

Ниже приведены различия между «/» и «//»; Я выполнил эти арифметические операции в Python 3.7.2

>>> print 11 / 3
3.6666666666666665

>>> print 11 // 3
3

>>> print 11.3 / 3
3.7666666666666667

>>> print 11.3 // 3
3.0
0 голосов
/ 10 ноября 2018

5.0//2 приводит к 2.0, а не 2, потому что тип возвращаемого значения возвращаемого значения из оператора // соответствует правилам приведения в действие (приведение типов).

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

...