Отдел в Python 2.7. и 3.3 [дубликат]
этот вопрос уже есть ответ здесь:
Питон отдела
12 ответов
Как я могу разделить два числа в Python 2.7 и получить результат с десятыми?
Я не понимаю, почему есть разница:
в Python 3:
>>> 20/15
1.3333333333333333
в Python 2:
>>> 20/15
1
разве это не по модулю вообще-то?
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