Вопрос задан 18.11.2023 в 11:45. Предмет Информатика. Спрашивает Вадзишвили Леона.

Python В некотором файле содержатся детские имена. Каждое имя указано с новой строки. После имени

через пробел записано одно целое число - количество названных этим именем детей. Имена в файле перемешаны в случайном порядке. Напишите программу, которая считает данные из файла и выведет на экран 5 наиболее популярных имен (каждое в отдельной строке). Имя файла подается на вход и заранее не известно. Если указанного файла не существует, необходимо вывести сообщение "Файл не найден". Пример: Если в файле находятся следующие строки: Аня 5 Саша 10 Кирилл 150 Игорь 1 Юля 999 Миша 2 Вы должны вывести имена Юля, Кирилл, Саша, Аня, Миша (в порядке убывания количества, каждое в отдельной строке)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мотреску Маша.

Відповідь:

import operator

filename = input("Введите имя файла: ")

try:

   with open(filename, 'r') as f:

       names = {}

       for line in f:

           parts = line.strip().split()

           name = parts[0]

           count = int(parts[1])

           if name in names:

               names[name] += count

           else:

               names[name] = count

       sorted_names = sorted(names.items(), key=operator.itemgetter(1), reverse=True)

       for name, count in sorted_names[:5]:

           print(name)

except FileNotFoundError:

   print("Файл не найден")

except:

   print("Неизвестная ошибка")

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи, необходимо выполнить следующие шаги:

1. Спросить пользователя о имени файла и сохранить его в переменную.

2. Попытаться открыть указанный файл для чтения.

- Если файл не найден, вывести сообщение "Файл не найден" и завершить программу. - Если файл найден, перейти к следующему шагу.

3. Создать словарь, где ключами будут имена детей, а значениями будут количество названных ими детей.

4. Прочитать содержимое файла построчно.

- Для каждой строки: - Разделить строку на две части - имя ребенка и количество детей. - Преобразовать количество детей из строки в целое число. - Если имя ребенка уже присутствует в словаре, увеличить значение на количество детей из текущей строки. - Если имя ребенка отсутствует в словаре, добавить его в словарь с количеством детей из текущей строки.

5. Закрыть файл.

6. Отсортировать словарь по значению в убывающем порядке и сохранить результат в переменную.

7. Вывести на экран первые 5 элементов отсортированного словаря, используя цикл.

Вот пример реализации данной программы на языке Python:

```python file_name = input("Введите имя файла: ")

try: file = open(file_name, 'r') except FileNotFoundError: print("Файл не найден") exit()

names = {} for line in file: name, count = line.split() count = int(count) if name in names: names[name] += count else: names[name] = count

file.close()

sorted_names = sorted(names.items(), key=lambda x: x[1], reverse=True)

for i in range(5): if i < len(sorted_names): print(sorted_names[i][0])

```

После выполнения данного кода, программа будет запрашивать имя файла, и затем выводить 5 наиболее популярных имен из этого файла.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос