#python #python-3.x
Вопрос:
Я создал функцию main (), а также 3 других, и я пытаюсь заставить остальные 3 быть выполненными в main()
У меня это работало, а затем я испортил его в самом конце, поэтому я прокомментировал его, так как он не вызывает 3 другие функции.
# The program displays the letter grade and associated message for each exam score
# and the average exam score
# The program will not contain any repeated code and have a minimum of two functions besides Main.
def main():
# ask user to enter test scores
score = int(input("Enter your test scores separate by spaces, no commas: "))
# display test score
def showLetters(num, letterGrade):
print(f"{num:.1f} is an {letterGrade}n")
# display score message
def examScores(num):
if 90 <= num <= 100:
letterGrade = "A"
print("Excellent Work")
elif 80 <= num <= 89:
letterGrade = "B"
print("Nice job")
elif 70 <= num <= 79:
letterGrade = "C"
print("Not bad")
elif 60 <= num <= 69:
letterGrade = "D"
print("Room for improvement")
else:
letterGrade = "F"
print("Go back and review")
return letterGrade
# calculate average of all scores entered by user
def calcAverages(grades):
numbers = scores.split()
for i in range(len(numbers)):
numbers[i] = int(numbers[i])
print("Average exam score: ", sum(numbers) / len(numbers))
# ask user to repeat or quit
answer = str(input('Please enter "y" to run program again or "n" to exit: '))
if answer.lower() == 'n':
print('Thank you for using! Goodbye!')
sys.exit()
elif answer.lower() == 'y':
main()
# ??? = main()
# for n in ????? :
# showLetters(n, examScores(n, calcAverages(????)))
Комментарии:
1. вам необходимо сохранить пользовательские данные. как только вы сохраните данные пользователя, когда пользователь запросил выход, из этих данных хранилища вы сможете рассчитать результат
2. Вы имеете в виду что-то вроде текстового файла? Я не думаю, что мы зашли так далеко в курсе, чтобы я мог использовать этот метод.
3. вы можете использовать объект словаря для сохранения сведений . например
{1: {"firstname":"xyz", "lastname":"abc", "class1":'a'}, 2 :{"firstname":"aaA", "lastname":eqeq"..}}
, как это
Ответ №1:
Я внес незначительные изменения в вашу программу, и теперь у вас есть средние значения.
Я выделил только те строки, которые нуждаются в дополнении.
counter = 0 # tracks the number of times the function is called
#added the below 2 lines after counter
sumCredit = 0 #tracks the sum credit for all the students
sumStudyHrs = 0 #track the sum of the study hours for all the students
def myfunction():
global counter # tracks the number of times the function is called
#added two more global variables to keep track of the averages
global sumCredit #track the sum credit
global sumStudyHrs #track the sum study hours
остальная часть кода может остаться как есть. Сразу после печати сведений об ученике вам необходимо накопить значения, чтобы можно было рассчитать среднее значение.
print("Study hours: " str(sumHours))
#added the below 2 lines after your print statements
sumCredit = classes
sumStudyHrs = sumHours
# Ask user if they want to end or restart
Теперь вам нужно использовать эту информацию для своих расчетов.
При выводе среднего значения используйте приведенные выше переменные для вычисления среднего значения.
print("Total Students: " str(counter)) # tracks the number of times the function is called
#modified your average credits and average study with correct numerator
print("Average Credits: " str(sumCredit / counter)) #computer average credits
print("Average Study Hours: " str(sumStudyHrs / counter)) #compute average study hours
print('Thank you for using! Goodbye!')
Это должно дать вам желаемые результаты.
Дайте мне знать, если вам понадобится полный код.
Комментарии:
1. ты спас мне жизнь! спасибо, спасибо, спасибо тебе —- единственное, что я изменил, чтобы математика работала, было
sumCredit = creditSum