Top.Mail.Ru
Ответы
Аватар пользователя
5 месяцев назад
от

Помогите с кодом в python пожалуйста!

Задача: От вампиров умозрительных мысли Уолтера переметнулись к вампирам вполне конкретным, то бишь к Гизеле фон Лютценземмерн. Как блестели чёрные локоны, в которых запутались лунные лучи, как горели её глаза! Настоящая принцесса из сказки, не чета его блеклым соотечественницам. Он представил, как Гизела машет ему из высокой башни и сбрасывает вниз длинные чёрные волосы. Правда, вскарабкайся Уолтер по ним и тут же будет укушен. А может быть и нет?

Напишите программу, собирающую статистику подобных случаев. Может же быть, что нет?

Формат ввода
Вводятся строки чисел через дефис, окружённый пробелами, пока не будет введена строка из более, чем 10 чисел – она служит признаком окончания ввода, в рассмотрении не участвует.

Формат вывода
Статистика представляет собой словарь с ключами:

last – номер строки, в которой на последнем месте стоит самое большое число из всех последних чисел всех строк; если таких несколько, то номер первой встреченной строки (с меньшим номером);
largest – наибольшая сумма чисел в одной строке;
triple – сумма остатков от деления на 3 всех положительных чисел;
average – целая часть от среднего арифметического всех чисел.
Выведите полученный словарь без форматирования.
МОЙ КОД:
line_number = 0
last_max = float('-inf')
last_line = 0
largest_sum = float('-inf')
triple_sum = 0
total_sum = 0
total_count = 0

while True:
line = input()
numbers_str = line.split(" - ")
if len(numbers_str) > 10:
break

line_sum = 0
for num_str in numbers_str:
num = int(num_str)
if num > 0:
triple_sum += num % 3
line_sum += num
total_sum += num
total_count += 1

if line_sum > largest_sum:
largest_sum = line_sum

last_num = int(numbers_str[-1])
if last_num >= last_max:
last_max = last_num
last_line = line_number + 1

line_number += 1

average = int(total_sum / total_count) if total_count > 0 else 0

result_dict = {
"last": last_line,
"largest": largest_sum,
"triple": triple_sum,
"average": average
}
print(result_dict)
Вывод(например):
{'last': 4, 'largest': 296, 'triple': 27, 'average': 28}
Ожидаемый вывод:
{
"last": 2,
"largest": 296,
"triple": 27,
"average": 28
}

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
5мес

Замени if last_num >= last_max: на if last_num > last_max:.

Аватар пользователя
Ученик
5мес

тебе где эту задачу дали?

Аватар пользователя
Мыслитель
5мес

line_number+=1 попробуй в самое начало цикла переставить