010*_*amt 5 python floating-point
我是一个初学者,从学习Python的艰难方式学习Python.这是我学习的第一门编程语言,我被困在练习中.
练习:"解释为什么使用4.0而不仅仅是4".
cars = 100
space_in_a_car = 4.0 #Why does he uses 4.0 instead of 4 here?
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / cars_driven
print "There are", cars, "cars available."
print "There are only", drivers, "drivers available."
print "There will be", cars_not_driven, "empty cars today."
print "We can transport", carpool_capacity, "people today."
print "We have", passengers, "to carpool today."
print "We need to put about", average_passengers_per_car, "in each car."
Run Code Online (Sandbox Code Playgroud)
老实说,我找不到任何理由为什么他会在第2行使用浮点除了作为一个例子,如果我有一个浮点数它影响表达式评估的其余部分(cars_driven*space_in_a_car)导致120.0 .
我错过了什么吗?
这是一个简单的问题,有一个简单的答案,由于某种原因我过度复杂.
(假设你知道为什么3/4返回0以及为什么3/4.0返回0.75)
我看了看这本书,代码只是那一点,它似乎没有任何更多,它确实问:
解释为什么使用4.0而不是4.
事实证明这是一个奇怪的问题,因为实际上没有理由.David Heffernan一直都是对的.
所以,当你添加.0它时,它没有任何效果,因为你只需要在浮点数中转换拼车容量:
carpool_capacity = cars_driven * space_in_a_car
Run Code Online (Sandbox Code Playgroud)
我无法理解作者的目标是什么,唯一值得注意的区别在于,一个是打印120.0而另一个是打印120
正如我之前指出的那样:
average_passengers_per_car = passengers / float(cars_driven) #added float
Run Code Online (Sandbox Code Playgroud)
会更有意义,因为,例如,如果passengers = 93原始代码中的平均值是,3而不是3.1我认为平均值更合理.
对不起,混乱,我希望我现在得到它:)它有帮助!
旧:
原因可能是这样的:
3/4 # returns 0
Run Code Online (Sandbox Code Playgroud)
那是因为int/int == int,因为它是一个int,所以4"适合"3次中的0次,并且没有小数点.
你应该做:
3/4. # returns 0.75
Run Code Online (Sandbox Code Playgroud)
要么
3/float(4)
Run Code Online (Sandbox Code Playgroud)
这适用于python 2.x而不适用于python 3
但
这根本没有意义,除非我遗漏了一些东西,否则我认为这是"错误的"!
这会更有意义:
cars = 100
space_in_a_car = 4 #not float
drivers = 30
passengers = 90
cars_not_driven = cars - drivers
cars_driven = drivers
carpool_capacity = cars_driven * space_in_a_car
average_passengers_per_car = passengers / float(cars_driven) #added float
Run Code Online (Sandbox Code Playgroud)
由于汽车的空间数量不能是4个半座位,而平均值可能是2个半人,因为它是一个数字而不是实际的人.
| 归档时间: |
|
| 查看次数: |
787 次 |
| 最近记录: |