Форум сайта python.su
Здравствуйте.
Мне задали написать не большую программку.
Её задача спросить сколько людей, сколько мест в автобусе и по этим данным выдавать сколько автобусов нужно и сколько будет в последнем автобусе.
Вот в чем проблема. Например у меня 115 человек, в автобусе 40 мест. Если так посчитать то выходит: нужно 3 автобуса, в последнем 35 человек.
Однако Python выдаёт мне 2 автобуса (115/40=2,875). Как правильно округлить чтобы он выдовал нужное количество
#Buss
print "Кол. людей?"
a=input()
print "Сколько мест в автобусе?"
b=input()
print "Нужное кол. автобусов:"
print round(a/b,0)
print "Людей в последнем автобусе:"
print a%b
round(2.875,0)
Офлайн
>>> 115/40
2
>>> 115 % 40
35
>>> 2*40+35
115
Офлайн
asv13Извините, но я не поняла…>>> 115/40
2
>>> 115 % 40
35
>>> 2*40+35
115
Офлайн
можно вот так: round(float(a)/b,0)
Офлайн
у мну так работает
#Buss
print "Кол. людей?"
a=float(input())
print "Сколько мест в автобусе?"
b=float(input())
print "Нужное кол. автобусов:"
print round(a/b,0)
print "Людей в последнем автобусе:"
print a%b
Офлайн
Murderdoll666дело в том что питон если ему явно не задать что данные будут дробные их таковыми не считает. Вы правильно подметели но тут вы задаете питону что число в числителе дробно. А если в ходе выполнения программы укажите a и b например 100 и 3 то питон будет их делить отбрасывая десятые. Ситуация меняется при 100./3
Самое забавное что если написать
Код:
round(2.875,0)
>>> 100/3
33
>>> 100./3
33.333333333333336
>>> a = 100
>>> float(a)/3
33.333333333333336
Отредактировано (Сен. 15, 2010 19:30:15)
Офлайн
imaksimusспасибо, так очень даже работает
можно вот так: round(float(a)/b,0)
Офлайн