Как выполнить добавление записей в переменную словаря Python?Python

Программы на Python
Ответить
Anonymous
 Как выполнить добавление записей в переменную словаря Python?

Сообщение Anonymous »

Мне нужно написать программу, которая считывает оценки учащихся из текстового файла. Каждая строка начинается с идентификатора учащегося, затем номера раздела, а затем буквенной оценки (A, B, C, D или F).
В моих выходных данных должно быть показано среднее число оценок для каждой строки. раздел, и мой план состоял в том, чтобы использовать словарь для сопоставления оценок с разделом, чтобы сохранить промежуточную сумму для каждого раздела и позже разделить ее на количество записей в этом разделе.
Я пытаюсь понять, как добавить текущую оценку строк в соответствующий раздел словаря
Мой код приведен ниже, а также ошибка TypeError, с которой я столкнулся:

строка 57 в
TypeError: неподдерживаемый тип операнда (s) для +: '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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»