Усреднение входных данных от пользователя

#python

#python

Вопрос:

Четвертое задание включает в себя написание программы на Python для вычисления средней оценки теста для группы из пяти студентов. Ваша программа должна включать список из пяти имен. Используя цикл for, он должен последовательно запрашивать у пользователя оценку теста для каждого из пяти учащихся. Каждое приглашение должно содержать имя учащегося, чья оценка теста должна быть введена. Он должен вычислять и отображать среднее значение этих пяти оценок и наивысшую оценку. Вы должны определиться с именами пяти студентов.

Итак, это мое задание, и ниже приведено то, что у меня есть до сих пор.

 # This program will compute the average quiz grade for 5 students
print ("Hello, this program is designed to compute the average quiz grades for the following students: Clark, Nicole, Kiran, Alex, and Erik")

students = ["Clark", "Nicole", "Kiran", "Alex", "Erik"]
for student in students:
    print (student, ", What was your quiz grade?")
    grades = eval(input("My grade is: "))
  

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

Ответ №1:

Да. Прежде всего, я исправил и отформатировал ваш код для вас.

 # This program will compute the average quiz grade for 5 students
print("Hello, this program is designed to compute the average quiz grades for the following students: Clark, Nicole, Kiran, Alex, and Erik")

students = ["Clark", "Nicole", "Kiran", "Alex", "Erik"]

for student in students:
    print(student, ", What was your quiz grade?")
    grades = input("My grade is: ")
  

Пока что вы можете задать каждому из учеников оценку. Как только они скажут вам, вы должны сохранить это в памяти. Простым способом сделать это было бы использовать список (я предполагаю, что вы еще не изучили словари).

Вы можете создать новый список, прежде чем запрашивать оценки, а затем добавлять в конец списка с каждой новой оценкой, вводимой пользователем.

 # This program will compute the average quiz grade for 5 students
print("Hello, this program is designed to compute the average quiz grades for the following students: Clark, Nicole, Kiran, Alex, and Erik")

students = ["Clark", "Nicole", "Kiran", "Alex", "Erik"]

grades = []  # create an empty list to store the grades in

for student in students:
    print(student, ", What was your quiz grade?")
    grade = input("My grade is: ")
    grades.append(int(grade))  # convert the grade to an integer number, then add it to the list

print("Here are the grades you entered: ", grades)
  

Теперь нам нужно будет вычислить среднее значение списка. Вспоминая элементарную математику, среднее значение набора чисел — это сумма чисел, деленная на количество имеющихся чисел.

В Python вы можете использовать встроенную функцию sum() для вычисления суммы чисел. Вы можете использовать встроенную функцию len() , чтобы получить количество элементов в списке.

Теперь вам просто нужно разделить сумму на длину.

 average = sum(grades) / len(grades)
print("The average is:", average)
  

Теперь, чтобы получить наивысшую оценку, вы можете использовать встроенную функцию max() . Это позволит найти и вернуть наибольшее число в массиве.

Вы можете использовать его следующим образом.

 highest = max(grades)
print("The highest grade is:", highest)
  

В случае, если вы хотите комбинированный код:

 # This program will compute the average quiz grade for 5 students
print("Hello, this program is designed to compute the average quiz grades for the following students: Clark, Nicole, Kiran, Alex, and Erik")

students = ["Clark", "Nicole", "Kiran", "Alex", "Erik"]

grades = []  # create an empty list to store the grades in

for student in students:
    print(student, ", What was your quiz grade?")
    grade = input("My grade is: ")
    grades.append(int(grade))  # convert the grade to an integer number, then add it to the list

print("Here are the grades you entered: ", grades)

average = sum(grades) / len(grades)
print("The average is:", average)

highest = max(grades)
print("The highest grade is:", highest)