如果33人有33辆车出现在一个拼车停车场,如果每辆车能容纳4人,需要多少辆车?停车场还剩下多少辆车?
我知道答案是9,但我该如何编写脚本呢?我在这件事上挣扎了好几个小时。
cars = 33
people = 33
people_per_car = 4
cars_needed = people / people_per_car
cars_left_at_lot = cars - cars_needed
print cars_needed
print cars_left_at_lot我得了8-错了!
8
25发布于 2014-02-09 19:08:57
这是因为在python2中,当两个操作数都是整数时,您将执行整数除法,而在默认情况下,整数除法如下:
>>> 33/4
8
>>> 33/4.0 # Note that one of operands is float
8.25
>>> math.ceil(33/4.0)
9.0在python3中,在默认情况下,部门是以浮点数的方式执行的(但我猜这是不相关的)。
发布于 2014-02-09 19:09:49
如果有剩余部分,您需要添加一辆额外的汽车:
cars_needed = people / people_per_car
if people % people_per_car:
cars_needed += 1发布于 2014-02-09 19:12:17
好的,您需要使用python3.3或float命令来禁用自动舍入:
from math import ceil
cars = 33
people = 33
people_per_car = 4
cars_needed = int(ceil(1.* people / people_per_car))
cars_left_at_lot = cars - cars_needed
print cars_needed
print cars_left_at_lot在python中,如果数字的类型为int,则会自动舍入数字。这就是为什么我使用1. *将数字转换为浮动的原因。细胞会做四舍五入而不是四舍五入。
https://stackoverflow.com/questions/21663524
复制相似问题