Member 13389789 Ответов: 3

Пожалуйста, решите эту программу Python


Информация о курсах
Формат строки: код курса~название курса~семестр~год~преподаватель
Информация о студентах
Формат строки: номер рулона~полное имя
Информация об оценках
Формат строки: код курса~семестр~Год~Номер рулона~класс
Возможные оценки: A, AB, B, BC, C, CD, D с соответствующими оценочными баллами 10, 9, 8, 7, 6, 5 и 4. Средний балл студента - это сумма его баллов, деленная на количество курсов. Например, если студент прошел два курса с оценками а и С, средний балл оценки равен 8.50 = (10+7)÷2. Если студент не закончил ни одного курса, средний балл определяется как 0.

Можно предположить, что данные внутренне непротиворечивы. Для каждого класса во входных данных есть соответствующий код курса и номер рулона.

Каждый раздел ввода начинается со строки, содержащей одно ключевое слово. Первый раздел начинается со строки, содержащей курсы. Второй раздел начинается со строки, содержащей студентов. Третий раздел начинается со строки, содержащей оценки. Конец ввода обозначается строкой, содержащей EndOfInput.

Напишите программу на Python для чтения данных, как описано выше, и распечатайте строку со средним баллом оценки для каждого ученика в следующем формате:

Номер Рулона~Полное Имя~Средний Балл Оценки
Ваш вывод должен быть отсортирован по номеру рулона. Средний балл оценки должен быть округлен до 2 цифр после десятичной точки. Используйте встроенную функцию round().

Вот пример ввода и соответствующий ему вывод.

Пример Ввода

Курсы
Тран~трансфигурация~1~2011-2012~Минерва Макгонагалл
CHAR~Charms~1~2011-2012~Филиус Флитвик
Студенты
SLY2301~Ханна Эббот
SLY2302~Юаном Аберкромби
SLY2303~Стюарт Экерли
SLY2304~Бертрам Обри
SLY2305~Эйвери
SLY2306~Малкольм Бэддок
SLY2307~Маркус Белби
SLY2308~Кэти Белл
SLY2309~Сириус Орион Блэк
Оценки
TRAN~1~2011-2012~SLY2301~AB
TRAN~1~2011-2012~SLY2302~B
TRAN~1~2011-2012~SLY2303~B
TRAN~1~2011-2012~SLY2305~A
TRAN~1~2011-2012~SLY2306~BC
TRAN~1~2011-2012~SLY2308~A
TRAN~1~2011-2012~SLY2309~AB
CHAR~1~2011-2012~SLY2301~A
CHAR~1~2011-2012~SLY2302~BC
CHAR~1~2011-2012~SLY2303~B
CHAR~1~2011-2012~SLY2305~BC
CHAR~1~2011-2012~SLY2306~C
CHAR~1~2011-2012~SLY2307~B
CHAR~1~2011-2012~SLY2308~AB
EndOfInput
Пример Ввода

SLY2301~Ханна Эббот~9.5
SLY2302~Юэн Аберкромби~7.5
SLY2303~Стюарт Экерли~8.0
SLY2304~Бертрам Обри~0
SLY2305~Avery~8.5
SLY2306~Малкольм Бэддок~6.5
SLY2307~Маркус Белби~8.0
SLY2308~Кэти Белл~9.5
SLY2309~Сириус Орион черный~9.0

Что я уже пробовал:

моя система не работает, поэтому я прошу вашей помощи

Member 13389789

Покажите свой код, чтобы получить помощь по нему.

3 Ответов

Рейтинг:
2

Patrice T

Цитата:
Покажите свой код, чтобы получить помощь по нему.

Вы тот, кто должен показать свой код, чтобы получить помощь по нему.

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей выполнять вашу работу, а для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и начинайте работать. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.


Рейтинг:
2

Member 13389943

(lis1, lis2, lis3)= ([], [], [])

a = input()
while True:
	
	if a == 'Courses':
		a =input()
		while a != 'Students':
			lis1.append(a.split('~'))
			a = input()
	elif a == 'Students':
		a =input()
		while a!= 'Grades':
			a.split(' ')
			lis2.append(a.split('~'))
			a = input()
	elif a == 'Grades':
		a =input()
		while a != 'EndOfInput':
			lis3.append(a.split('~'))
			a = input()
	elif a == 'EndOfInput':
		break
	else:
		break

Я еще один пользователь, столкнувшийся с той же проблемой, для решения которой мне удалось составить отдельный список курсов(lis1), студентов(lis2), классов(lis3), но я не знаю, что делать дальше и как подойти к дальнейшей помощи plz!!


Member 13389789

да я тоже ударил только здесь

Рейтинг:
1

OriginalGriff

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

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!

Цитата:
моя система не работает, поэтому я прошу вашей помощи
Ну, я думаю, это немного лучше, чем "моя собака съела мою домашнюю работу", но вам все равно никто не поверит ... он работает достаточно хорошо, чтобы найти нас, скопировать и вставить задачу и попытаться заставить нас сделать это за вас...


Member 13389789

Покажите свой код, чтобы получить помощь по нему.

OriginalGriff

Именно: мы здесь не для того, чтобы делать это за вас.

Member 13389789

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

OriginalGriff

Значит, ты солгал нам, чтобы заставить нас делать домашнее задание? Это не очень хорошее начало - почему мы должны верить вам сейчас?
Это ваше домашнее задание: оно поможет вам учиться. То, что мы делаем это за вас, не делает этого и вредит вам в долгосрочной перспективе - следующее задание будет сложнее, а на выпускных экзаменах у вас вообще не будет доступа к помощи!
Итак, сядьте, прочтите конспекты курса, прочтите учебник, затем прочтите вопрос и начните работать над тем, что делать. Старайтесь делать это поэтапно, проверяя каждый по ходу.Это не сложно, это основные вещи - если вы не можете понять, как это сделать, вы провалите курс, потому что с этого момента он будет только усложняться.

OriginalGriff

Да, и кстати: вы же понимаете,что ваш наставник тоже имеет доступ к этому сайту и будет знать, если вы все равно скопируете решение?

Member 13389789

можете ли вы помочь мне или нет...я не хочу снова просить вас об этом.

OriginalGriff

Мы помогаем только тем, кто помогает себе сам: никто здесь просто не даст вам код, чтобы вы могли передать его как свою собственную работу.

Member 13389789

я успешно отделил курс и выше данные, но я ударил в этом, но я не знаю, как получить следующий подход, о котором я понятия не имею, так что сэр, вы можете дать мне код

Member 13389789

можете ли вы мне помочь у меня есть достаточно времени чтобы представить свое задание