Отдел в Python 2.7. и 3.3 [дубликат]



этот вопрос уже есть ответ здесь:




  • Питон отдела

    12 ответов



Как я могу разделить два числа в Python 2.7 и получить результат с десятыми?



Я не понимаю, почему есть разница:



в Python 3:



>>> 20/15
1.3333333333333333


в Python 2:



>>> 20/15
1


разве это не по модулю вообще-то?

692   4  

4 ответов:

в python 2.7,/ оператор является целочисленным делением, если входные данные являются целыми числами.

если вы хотите float division (что я всегда предпочитаю), просто используйте этот специальный импорт:

from __future__ import division

посмотреть здесь:

>>> 3 / 2
1
>>> from __future__ import division
>>> 3 / 2
1.5
>>>

целочисленное деление достигается с помощью //, и по модулю с помощью %

>>> 3 % 2
1
>>> 3 // 1
3
>>>

EDIT

прокомментировал user2357112, этот импорт должен быть выполнен до любого другого нормального импорт.

В Python 3, / - флоат отдела

В Python 2, / - целочисленное деление (при условии int входы)

в 2 и 3, // - целочисленное деление

(чтобы получить разделение float в Python 2, требуется, чтобы любой из операндов был float, либо как 20. или float(20))

В Python 2.x, убедитесь, что у вас есть хотя бы один операнд вашего деления в float. Несколько способов вы можете достичь этого в следующих примерах:

20. / 15
20 / float(15)

" / " - это целочисленное деление в python 2, поэтому оно округляется до целого числа. Если вы хотите вернуть десятичное число, просто измените тип одного из входов на float:

float(20)/15 #1.33333333

Comments

    Ничего не найдено.