Я python новичок и выполнил задание для себя, чтобы лучше справиться с заявлением. Задача имеет следующие критерии:
- загрузить данные из файла .csv и показать его - файл содержит данные о имя и фамилию учащихся, какой предмет они слушают и какую оценку они имеют от 1 до 10
- , у пользователя есть возможность ввести предмет и , если предмет существует он показывает всех студентов, которые слушают предмет он также показывает средний балл всех студентов, которые слушают предмет
- , если вход не совпадает любой из субъектов отображает сообщение об ошибке и не показывает среднее значение оценка предмета .
Я отобразил данные и включил поиск по предмету, но не могу понять, как не показывать среднюю оценку, если ввод, если отличается от ввода существующие предметы.
Файл с именем Students.csv содержит:
John;Doe;Informatics;4
Max;King;Biology;3
Tim;Lambert;Computer Science;2
Anna;Gray;Geography;6
Megan;Hart;Englisch;7
Phil;Hill;German;8
Audrey;Ava;Informatics;3
Bella;Carol;Informatics;7
Diana;Diane;Englisch;2
Bella;Bernadette;Englisch;1
Carolyn;Chloe;Biology;9
Carol;Caroline;Biology;8
Elizabeth;Ella;Geography;3
Это мой task_2.py Python (3.8.1) код:
#open the file and create a list
work_file = open("students.csv","r")
students = []
#print(work_file)
#create a sublist
for row in work_file:
row = row.rstrip()
row_sublist = row.split(";")
students.append(row_sublist)
#ordered heading
print("--------------")
print("About the students: ")
print("--------------")
print("{0:18}{1:18}{2:18}{3:18}".format("Name","Last","Subject","Grade"))
print("{0:18}{1:18}{2:18}{3:18}".format("----","----","-------","-----"))
#print
for bundle in students:
for data in bundle:
print("{0:17}".format(data), end=" ")
print()
print()#/n
#input
question = input("Witch subject do u wont to know mmore about? ")
#initialize
counter = 0
grade = 0
average = 0
valid = ""
#search
for bundle in students:
if question == bundle[2]:
valid = "yes"
grade = grade + int(bundle[3])
counter = counter + 1
average = grade/counter
for data in bundle:
print("{0:17}".format(data), end=" ")
print()
#print average
print("The average is: ", average)
#print the
if valid != "yes":
print("Error")
#close
work_file.close()
Любая помощь будет принята с благодарностью. Спасибо за потраченное время и хорошего дня.
Правка: изменилась ведьма, на которую