Я задал следующую проблему и попросил написать для нее алгоритм решения с использованием python.Выполнение некоторых логических ошибок с моим кодом
проблема: Напишите программу Python, чтобы определить учащегося с самым высоким средним уровнем. Каждый студент занимает промежуток времени и финал. Оценки должны быть оценены как от 0 до 100 включительно. Введите имя и классы каждого ученика и подсчитайте среднее число учащихся. Выведите имя учащегося с лучшим средним и средним.
Вот мой код:
def midTerm():
midtermScore = int(input("What is the midterm Score: "))
while (midtermScore <= 0 or midtermScore >= 100):
midtermScore = int(input("Please enter a number between 0 and 100: "))
return midtermScore
def final():
finalScore = int(input("What is the final Score: "))
while (finalScore < 0 or finalScore > 100):
finalScore = int(input("Please enter a number between 0 and 100: "))
return finalScore
total = 0
highest = 0
numStudents = int (input("How Many Students are there? "))
while numStudents < 0 or numStudents > 100:
numStudents = int (input("Please enter a number between 0 and 100? "))
for i in range (1, numStudents+1):
students = (input("Enter Student's Name Please: "))
score = (midTerm()+ final())
total += score
avg = total/numStudents
if (highest < avg):
highest = avg
winner = students
print ("The Student with the higgest average is: ", winner, "With the highest average of: ", avg)
Проблема Я бегу в это последняя часть. Программа не печатает имя человека с наивысшим средним значением, но имя человека, которое было введено в последний раз. Я очень смущен тем, как идти дальше отсюда. Не могли бы вы помочь? Заранее благодарю за любую помощь.
Посмотрите на строку: 'students = (input (« Введите имя студента Please: »))' - вы переписываете его каждый раз через цикл. У вас тоже проблема с параметром numStudents. Это также было бы хорошим временем, когда кто-либо научился [debug python] (https://pymotw.com/2/pdb/), так как от быстрого взгляда есть несколько логических ошибок, которые в конечном итоге дадут вам неправильные результаты , – birryree
Вы назначаете «победитель = ученики», поэтому смотрите на значение студентов, и ему присваивается «students = (input (« Введите имя студента Please: »))' вы никогда не назначаете правильного ученика, что приводит к логической ошибке. – kyle
Здесь может быть хороший вопрос, но ваш вопрос не подходит. Просмотрите http://stackoverflow.com/help/how-to-ask. –