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

Задача "Средний балл по классам"

16.03.2021, 14:40. Показов 9185. Ответов 17

Студворк — интернет-сервис помощи студентам
Средний балл по классам

Определите и выведите средние баллы участников олимпиады в 9 классе, в 10 классе, в 11 классе.
Пример работы:
Ввод
Иванов Сергей 9 90
Сергеев Петр 10 91
Петров Василий 11 92
Васильев Иван 9 93
Вывод
91.5 91.0 92.0
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2021, 14:40
Ответы с готовыми решениями:

Задача: Средний балл
Проинициализируйте три списка: фамилии учеников, их оценки по математике, их оценки по русскому. Сформируйте список, содержащий списки...

Задача: Средний балл учеников (модифицированная)
Добавьте в класс Student метод get_average_mark(), который будет подсчитывать средний балл учащегося. Модифицируйте программу из...

Средний балл
Условие: Определите средний балл всех учащихся по каждому предмету. Формат входных данных: На вход программе подается натуральное...

17
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 14:42
qwert10, это очень просто. Имена отбрасывайте, они не важны, определяем класс(предпоследнее слово в строке), в словарь с ключом по этому слову сохраняем список, а в него все значения с этим классом что встретим. Мультисловарь в общем. А уж среднее посчитать у списка чисел - элементарно. Не благодари!
1
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 71
16.03.2021, 15:01  [ТС]
Код получился рабочим, но компилятор просит ввод в самой программе, не могли бы Вы подсказать?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def listAverage(list):
    sum = 0
    for i in list:
        sum += i
    return sum / len(list)
 
 
classes = {}
inFile = open('input.txt', 'r', encoding='utf-8')
for line in inFile:
    grade, mark = line.split()[2:]
    if grade in classes:
        classes[grade].append(int(mark))
    else:
        classes[grade] = [int(mark)]
 
for i in range(9, 12):
    print(listAverage(classes[str(i)]), end=' ')
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 15:30
qwert10, на сколько я знаю
Цитата Сообщение от qwert10 Посмотреть сообщение
open('input.txt', 'r', encoding='utf-8')

не возвращает значений.
нужно изменить
Цитата Сообщение от qwert10 Посмотреть сообщение
inFile = open('input.txt', 'r', encoding='utf-8')
на
Python
1
inFile = open('input.txt', 'r', encoding='utf-8').readlines()

ИЛИ

Цитата Сообщение от qwert10 Посмотреть сообщение
for line in inFile:
на
Python
1
for line in inFile.readlines():
https://www.geeksforgeeks.org/... in-python/

Добавлено через 1 минуту
то есть программа просто не работает потому что не получает никаких значений (файл был открыт, но не был прочитан)
0
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 71
16.03.2021, 15:37  [ТС]
Через созданный файл все отлично работает, но программа не проходит тесты, только потому, что необходимо вручную вводить список значений в самой программе( т.е. Иванов Сергей 9 90
Сергеев Петр 10 91
Петров Василий 11 92
Васильев Иван 9 93)
Никак не выходит это сделать
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 15:43
qwert10, а тестирующая система не подразумевает ввод в консоль? через обыычный инпут было бы проще.

мое замечание не помогло, вы попробовали?
0
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 71
16.03.2021, 15:46  [ТС]
Через созданный файл все отлично работает, но программа не проходит тесты, только потому, что необходимо вручную вводить список значений в самой программе( т.е. Иванов Сергей 9 90
Сергеев Петр 10 91
Петров Василий 11 92
Васильев Иван 9 93)
Никак не выходит это сделать

Добавлено через 36 секунд
Пробовал, к сожалению не помогло...(
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 15:47
Цитата Сообщение от qwert10 Посмотреть сообщение
Пробовал, к сожалению не помогло...(
что за тест. система? нет ввода через консоль?
0
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 71
16.03.2021, 15:58  [ТС]
Как я понимаю, как раз и нужно осуществить вывод через консоль, без использования файла с данными
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 16:00
qwert10, тогда элементарный вопросик -до какого момента считывать? ну то есть как понять что юзер закончил вводить?

Добавлено через 15 секунд
может ты нам не всю задачку привел?
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 16:03

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
тогда элементарный вопросик -до какого момента считывать?
вообще не обязательно же знать этого?


Python
1
2
3
4
5
6
7
8
s = ""
a = []
 
while True:
    s = input()
    if not s:
        break
    a.append(s)
допустим так считываем

Добавлено через 36 секунд
потом, соответственно, обрабатываем список
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
16.03.2021, 16:04
qwert10, А критерий остановки считывания входных данных какой? (Сколько строчек на входе?)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 16:04
alilxxey,
Цитата Сообщение от alilxxey Посмотреть сообщение
вообще не обязательно же знать этого?
может нет, а может в задаче написано... я потому и уточняю
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
16.03.2021, 16:05
alilxxey,
допустим так считываем
Сам пробовал вставить в код ? (В примере ТС не видно пустой строки)
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 16:07
Цитата Сообщение от alilxxey Посмотреть сообщение
s = ""
a = []
while True:
    s = input()
    if not s:
        break
    a.append(s)
(это если ввод кончается на EOF(пустая строка))

Добавлено через 1 минуту

Не по теме:

Gdez,

Цитата Сообщение от Gdez Посмотреть сообщение
Сам пробовал вставить в код ?
ну да, а что такое? Проблема только в том, что в конце еще пустую строку надо ввести. Но вообще обычно в таких задачах указывают кол-во строк

1
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 71
16.03.2021, 16:16  [ТС]
Да, тоже попробовал так, чтобы ввод заканчивался пустой строкой, по сути задача и без того решена правильно, из данным циклом, что Вы предлагаете, но при проверке выдает вот такую ошибку : "***Error***
Traceback (most recent call last):
File "__tester__.python3", line 12, in <module>
s = input()
EOFError: EOF when reading a line"
именно поэтому ввод "до пустой строки" не может быть условием (а другого не могу придумать)
и да, условие задачи именно такое, не словом более) :"определите и выведите средние баллы участников олимпиады в 9 классе, в 10 классе, в 11 классе"
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
16.03.2021, 16:22
Python
1
2
3
4
5
6
7
8
grades = [[] for i in range(3)]
with open("input.txt", "r") as lines:
    for line in lines:
        lastName, name, grade, score = line.strip().split(" ", maxsplit = 4)
        grade, score = int(grade) - 9, int(score)
        grades[grade].append(score)
    for scores in grades:
            print(sum(scores) / len(scores), end = " ")
попробуйте это

Добавлено через 27 секунд

Не по теме:

код не мой, естественно) Задача на чтение из файла и сортировку

0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
16.03.2021, 16:36
Цитата Сообщение от qwert10 Посмотреть сообщение
Определите и выведите средние баллы участников олимпиады в 9 классе, в 10 классе, в 11 классе.
Группируешь учеников по классам itertools.groupby, затем выводишь средний балл каждой группы statistics.mean.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2021, 16:36
Помогаю со студенческими работами здесь

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

Ключ - ФИО, значение – средний балл
Найдите учащегося с наибольшим средним баллом, если фамилия учащегося начинается на гласную, то удалите его из словаря. Выведите...

Средний балл по классам
Добрый вечер! Помогите, пожалуйста, написать программу на Python 3.6. В олимпиаде по информатике принимало участие несколько...

Максимальный балл по классам
В олимпиаде по информатике принимало участие несколько человек. Победителем олимпиады становится человек, набравший больше всех баллов....

Вывести фамилии студентов, балл по определенному предмету которых превышает средний балл по предмету на 0.5
Условие предыдущей задачи сохраняется. Вывести фамилии студентов, балл по определенному предмету которых превышает средний балл по предмету...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru