Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.04.2023
Сообщений: 18

Отображение имён с наибольшим показателем во время разных запусков программы

23.04.2023, 23:04. Показов 903. Ответов 5

Студворк — интернет-сервис помощи студентам
Питон. По мере прохождения программы пользователь получает очки, а под конец может ввести своё имя (строка). Позже должен высвечиваться топ 7 имён с наибольшим количеством очков, пользовавшиеся программой до этого запуска.
Т. е. один пользователь попользовался программой, значение очков было запомнено, в конце программы вышло одно имя. Попользовались ещё 7 человек, пользователь с наименьшем количеством очков удалился из топа или не добавляется последний пользователь из-за недостатка количества очков.
Как это сделать? Мне лично кажется надо строки с очками сохранить в файл, а потом с помощью каких-нибудь команд выводить тех самых 7 красавчиков. Можно ли это реализовать с удалением тех, кто не входит в семёрку?
Прошу прощения если подобное уже задавалось, не нашёл.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2023, 23:04
Ответы с готовыми решениями:

Определить город с наибольшим суммарным показателем вредных элементов
В 6 промышленных городах взяты пробы воздуха и определено процентное содержание в нем 10 вредных элементов. Определить город с наибольшим...

Показатели производства рабочих. Поиск рабочего с наибольшим показателем.
Приводятся показатели производства работы n<=30 рабочих за 7 дней. Определить номер рабочего, у которого показатель наибольший, и номер...

Определить номера рейсов с наибольшим и наименьшим удельным показателем перевозки
1 Имеются данные о работе 10 рейсах грузового такси следующего вида: количество перевезенного груза (кг) и расстояние (км). Определить ...

5
29 / 19 / 10
Регистрация: 24.04.2023
Сообщений: 62
24.04.2023, 23:00
Для решения данной задачи можно использовать словарь, где ключом будет имя пользователя, а значением - количество набранных им очков. После того, как пользователь вводит своё имя и количество очков, нужно обновить словарь, добавив или изменив соответствующую запись.

Для вывода топ-7 пользователей по количеству очков, можно использовать функцию sorted, которая отсортирует словарь по значению и вернет список пар (ключ, значение), отсортированных по убыванию значений. Затем можно вывести первые 7 пар.

Пример кода:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Создаем пустой словарь для хранения очков пользователей
user_scores = {}
 
# Пользователь запускает программу и получает очки
username = input("Введите своё имя: ")
score = int(input("Введите количество очков: "))
 
# Обновляем словарь с очками пользователей
user_scores[username] = score
 
# Выводим топ-7 пользователей по количеству очков
top_users = sorted(user_scores.items(), key=lambda x: x[1], reverse=True)[:7]
print("Топ-7 пользователей:")
for i, (name, score) in enumerate(top_users):
    print(f"{i+1}. {name}: {score} очков")
Здесь мы используем функцию sorted, которая сортирует элементы словаря user_scores по значению (то есть, по количеству очков) в порядке убывания. Затем мы берём первые 7 элементов списка ([:7]), чтобы получить топ-7 пользователей.
1
0 / 0 / 0
Регистрация: 23.04.2023
Сообщений: 18
05.05.2023, 11:52  [ТС]
Не работает. Выводится вот так:
1. D: ["{'d':", "0}{'ASD':", "1610}{'DFG':", "1650}{'D':", '0'] очков

Если поможет, то вот как сохранялись данные в файл:

Code
1
{'d': 0}{'ASD': 1610}{'DFG': 1650}{'D': 0}
0
 Аватар для Aviz__
2749 / 2057 / 508
Регистрация: 17.02.2014
Сообщений: 9,479
05.05.2023, 12:39
Darkmagon,
Python
1
2
3
4
from random import randint as ri
user_scores = [(str(i), ri(1, 100)) for i in range(ri(8, 22))]
user_scores.sort(key= lambda x: x[1], reverse=True)
print(user_scores[:7])
0
0 / 0 / 0
Регистрация: 23.04.2023
Сообщений: 18
05.05.2023, 17:11  [ТС]
Aviz__,
AttributeError: 'dict' object has no attribute 'sort'

Нужно с помощью словаря
0
 Аватар для Aviz__
2749 / 2057 / 508
Регистрация: 17.02.2014
Сообщений: 9,479
06.05.2023, 12:35
Цитата Сообщение от Darkmagon Посмотреть сообщение
Нужно с помощью словаря
зачем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2023, 12:35
Помогаю со студенческими работами здесь

Одинаковое отображение программы на разных дисплеях
Всем доброго времени суток. Столкнулся с такой проблемой, сделал программу на 13 дюймовом дисплее, решил по смотреть как будет выглядеть на...

Отображение логотипа на время запуска программы
Подскажите пожалуйста как вывести изображение(логотип) на время загрузки программы.После чего оно автоматом убирается...

Ограничение количества запусков программы
Здравствуйте форумчане, хотел спросить у вас, не подскажите, почему у меня не работает код, или можете посоветовать более эффективный ...

Узнать количество запусков программы
Возможно ли посчитать сколько ли раз запущена программа. Сразу скажу вариант: запуск программы, добавляем 1-ку в файл мне не подойдет. ...

Контроль числа запусков программы
Друзья, как в exe файле записать возможное кол-во числа запусков программы. Может кто-нибудь сталкивался с такой задачей. или владеет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru