Мне нужно написать программу, которая считывает оценки учащихся из текстового файла. Каждая строка начинается с идентификатора учащегося, затем номера раздела, затем буквенной оценки (A, B, C, D или F)
В моих выходных данных должно быть указано среднее число оценок для каждого раздела. , и мой план состоял в том, чтобы использовать словарь для сопоставления оценок с разделами, чтобы сохранить промежуточную сумму для каждого раздела и позже разделить ее на количество записей в этом разделе.
Я борюсь с трудностями чтобы разобраться, как добавить текущую оценку строки в соответствующий раздел словаря
Мой код приведен ниже, а также эта ошибка TypeError, с которой я столкнулся:
строка 57 в
TypeError: неподдерживаемые типы операндов для +: ' set' и 'int'
Я попытался прочитать в словаре, чтобы ввести для каждого номера раздела текущую общую оценку, которая затем будет разделена на количество записей, чтобы получить среднее значение.
`#Open the grades file for reading and create a dictionary to hold section/section grade pairs
file = open("grades.txt",'r')
total_section_grades = dict()
#Use for loop to iterate through each line of the grades.txt file
#separating the letter grade with split function
for line in file:
pupil_ID,section_num,alpha_grade = line.strip().split("\t")
#Default numeric grade to 0 for each line in file
num_grade = 0
#Conditionals to convert letter grades to numbers
if alpha_grade == 'A':
alpha_grade = 100
elif alpha_grade == 'B':
alpha_grade = 89
elif alpha_grade == 'C':
alpha_grade = 79
elif alpha_grade == 'D':
alpha_grade = 74
elif alpha_grade == 'F':
alpha_grade = 69
#If section number exists in total_section_grades dictionary then
#update that section with num_grade variable
#If section number does not exist then create new section number key and
#add num_grade to dictionary
if section_num in total_section_grades:
total_section_grades[section_num] = total_section_grades[section_num] + num_grade
else:
total_section_grades[section_num] = {num_grade}
#Close text file
file.close()
#Calculate average numerical grade for each section
for current_section, grade_sum in total_section_grades.items():
average = sum(grades_sum)/len(grades_sum)
print(f"{current_section} average: {average}")`
Подробнее здесь: https://stackoverflow.com/questions/792 ... y-variable
Как выполнить добавление записей в переменную словаря Python? ⇐ Python
Программы на Python
-
Anonymous
1732349815
Anonymous
Мне нужно написать программу, которая считывает оценки учащихся из текстового файла. Каждая строка начинается с идентификатора учащегося, затем номера раздела, затем буквенной оценки (A, B, C, D или F)
В моих выходных данных должно быть указано среднее число оценок для каждого раздела. , и мой план состоял в том, чтобы использовать словарь для сопоставления оценок с разделами, чтобы сохранить промежуточную сумму для каждого раздела и позже разделить ее на количество записей в этом разделе.
Я борюсь с трудностями чтобы разобраться, как добавить текущую оценку строки в соответствующий раздел словаря
Мой код приведен ниже, а также эта ошибка TypeError, с которой я столкнулся:
строка 57 в
TypeError: неподдерживаемые типы операндов для +: ' set' и 'int'
Я попытался прочитать в словаре, чтобы ввести для каждого номера раздела текущую общую оценку, которая затем будет разделена на количество записей, чтобы получить среднее значение.
`#Open the grades file for reading and create a dictionary to hold section/section grade pairs
file = open("grades.txt",'r')
total_section_grades = dict()
#Use for loop to iterate through each line of the grades.txt file
#separating the letter grade with split function
for line in file:
pupil_ID,section_num,alpha_grade = line.strip().split("\t")
#Default numeric grade to 0 for each line in file
num_grade = 0
#Conditionals to convert letter grades to numbers
if alpha_grade == 'A':
alpha_grade = 100
elif alpha_grade == 'B':
alpha_grade = 89
elif alpha_grade == 'C':
alpha_grade = 79
elif alpha_grade == 'D':
alpha_grade = 74
elif alpha_grade == 'F':
alpha_grade = 69
#If section number exists in total_section_grades dictionary then
#update that section with num_grade variable
#If section number does not exist then create new section number key and
#add num_grade to dictionary
if section_num in total_section_grades:
total_section_grades[section_num] = total_section_grades[section_num] + num_grade
else:
total_section_grades[section_num] = {num_grade}
#Close text file
file.close()
#Calculate average numerical grade for each section
for current_section, grade_sum in total_section_grades.items():
average = sum(grades_sum)/len(grades_sum)
print(f"{current_section} average: {average}")`
Подробнее здесь: [url]https://stackoverflow.com/questions/79217180/how-to-perform-addition-to-entries-in-python-dictionary-variable[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия