Учитель физкультуры задался вопросом, на сколько в среднем его подопечные выросли за прошедший месяц.
Напишите программу, которая определяет, на сколько изменился средний рост учеников в классе.
Формат ввода
Вводится информация о детях в формате:
<Имя> <Рост месяц назад> <Рост сейчас>
Формат вывода
Одно число — ответ на вопрос задачи.
Ответ округлите до целых. Например, функцией round
.
Пример
Ввод
Аня 160 162
Боря 165 172
Вова 165 165
Вывод
3
Ввод
Аня 161 165
Боря 167 172
Вова 165 166
Дима 173 178
Вывод
4
Решение
Эта задача не сильно сложнее предыдущей, но в ней есть свой нюанс, связанный с особенностями работы методов read() и readlines().
Дело в том, что stdin.read().split(‘\n’) в некоторых ситуациях (например если в конце последней строки нажать enter и только потом послать код окончания ввода) породит пустую строку, в то время как при использовании stdin.readlines() этого не произойдет.
В остальном, пока есть что читать, считываем строку, распаковываем ее в переменные, считаем разницу и накапливаем ее в сумму разниц роста.
По окончании цикла делим накопленную сумму на количество строк и округляем.
Второй метод решения чуть более универсален, потому что позволяет пропускать ошибочно введенные пустые строки.
Посмотреть код
Решение
# readlines()
from sys import stdin
delta = 0
strings = [line.rstrip('\n') for line in stdin.readlines()]
for string in strings:
_, then, now = string.split()
delta += int(now) - int(then)
print(round(delta / len(strings)))
Решение
# read
from sys import stdin
strings = stdin.read().split('\n')
delta = 0
count = 0
for string in strings:
if string:
_, then, now = string.split()
delta += int(now) - int(then)
count += 1
print(round(delta / count))