Я изучаю Python, и почему в этом примере используется плавающая точка? - PullRequest
2 голосов
/ 03 февраля 2012

http://learnpythonthehardway.org/book/ex4.html

Есть дополнительный вопрос с вопросом о том, почему я должен объяснить, почему вместо 4 используется число с плавающей точкой 4.0.

Я понимаю, что для точности используется плавающая точка, но я не могу понять, почему это необходимо в любом случае в этом примере.

Ответы [ 4 ]

4 голосов
/ 03 февраля 2012

В данном конкретном примере, похоже, нет необходимости использовать float вместо int. Это могло бы иметь эффект, если бы вы поделили что-то на это, но здесь этого не происходит. (И даже тогда, это будет зависеть от того, используете ли вы Python 2 или 3, так как деление с плавающей запятой по умолчанию используется в 3).

Если вы посмотрите на комментарии ниже, zedshaw (автор) признает столько же:

Михаил Груздев: А почему 4.0 используется для космоса? Может быть, это значение переменной драйвера должно быть с плавающей точкой?

zedshaw: Просто представить плавающую точку как небольшую загадку. Математически упражнение не имеет особого смысла, это просто тренировка. Продолжайте пока.

1 голос
/ 03 февраля 2012

Используется плавающая точка, потому что в Python int, деленное на int, создает int ( целочисленное деление ), которое здесь не предназначено.Если вы поделите float на int или int на float, вы получите float.

Пример:

   4/3
=> 1
   4.0/3
=> 1.3333333333333333
   2*4/3
=> 2
   2*4.0/3
=> 2.6666666666666665
0 голосов
/ 03 февраля 2012

Это из-за целочисленного деления.В основном это означает, что если вы разделите два целых числа, полученное число должно быть целым числом.Так, например, 3/4 приведет к 0, а 4/3 приведет к 1.Это потому, что 3/4 в «реальной» математике даст вам 0,75, а чтобы превратить 0,75 в целое число, Python усекает значения с плавающей запятой и оставляет вам 0 *.4.0 вместо 4. Превращение целого числа в число с плавающей точкой и игнорирование целочисленного деления, поскольку целое число, деленное на число с плавающей точкой, приводит к плавающему числу.3/4.0 равно 0.75, как вы хотите.

0 голосов
/ 03 февраля 2012

Арифметика с целочисленными операндами имеет целочисленный результат.

>>> 3 / 2
1
...