http://learnpythonthehardway.org/book/ex4.html
有一个额外的信用问题要求我解释为什么使用浮点4.0而不是4。
我知道浮点用于准确性,但我无法理解为什么在这个例子中无论如何都需要它。
答案 0 :(得分:4)
在该特定示例中,实际上似乎不需要浮点而不是int。如果你要用它来划分某些东西会产生影响,但这不会发生在这里。 (即便如此,它取决于你是使用Python 2还是3,因为浮动除法是3中的默认值)。
如果你看下面的评论,zedshaw(作者)承认:
МихаилГруздев:为什么4.0用于太空?也许它的驱动程序变量值应该是浮点数?
zedshaw:简单地介绍浮点作为一个小谜题。从数学角度来说,练习没有多大意义,只是练习。现在继续。
答案 1 :(得分:1)
使用浮点是因为在Python中,int
除以int
会产生int
(integer division),此处不在此处。如果您将float
除以int
或将int
除以float
,就会获得float
。
示例:
4/3
=> 1
4.0/3
=> 1.3333333333333333
2*4/3
=> 2
2*4.0/3
=> 2.6666666666666665
答案 2 :(得分:0)
这是因为有一个叫Integer Division的东西。基本上这意味着如果划分两个整数,结果数必须是整数。因此,例如3/4
会导致0
而4/3
会导致1
。这是因为“真实”数学中的3/4
会给你0.75并将0.75变成整数,Python会截断浮点值并留下0。
解决此问题的最简单方法是使用4.0而不是4.将整数转换为浮点并忽略整数除法,因为整数除以float会导致浮点数。 3/4.0
就像你想要的那样等于0.75
。
答案 3 :(得分:-1)
使用整数操作数的算术具有整数结果。
>>> 3 / 2
1