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

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

16.03.2021, 14:40. Показов 9059. Ответов 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 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
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
16.03.2021, 16:04
qwert10, А критерий остановки считывания входных данных какой? (Сколько строчек на входе?)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
16.03.2021, 16:04
alilxxey,
Цитата Сообщение от alilxxey Посмотреть сообщение
вообще не обязательно же знать этого?
может нет, а может в задаче написано... я потому и уточняю
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru