У меня есть этот код, который должен распечатать оценку Фреда со средним баллом 87 и окончательным баллом 92. Что мне не хватает?
Это для домашнего задания, и мой учитель говорит, что ему нужночтобы быть отформатированным таким образом, и когда она сделала это, код запустился, но он не работает для меня.
print("Section 7.1 Practice Problem 1")
print("Answer to Problem 1 =")
def __init__(self):
st = LGstudent
name = input("Enter student's name: ")
st.setName(name)
midterm = float(input("Enter student's grade on midterm exam: "))
st.setMidterm(midterm)
final = float(input("Enter student's grade on final exam: "))
st.setFinal(final)
print("\nNAME\tGRADE")
print(st)
class LGstudent:
def __init__(self, name="", midterm=0, final=0):
self._name = name
self._midterm = midterm
self._final = final
def setName(self, name):
self._name = name
def setMidterm(self, midterm):
self._midterm = midterm
def setFinal(self, final):
self._final = final
def calcSemGrade(self):
average = (self._midterm + self._final) / 2
average = round(average)
if average >= 90:
return "A"
elif average >= 80:
return "B"
elif average >=70:
return "C"
elif average >=60:
return "D"
else:
return "F"
def __str__(self):
return self._name + "\t" + self.calcSemGrade()
Каждый раз, когда я печатаю, я получаю сообщение об ошибке отслеживания, говорящее, что st.setName не заполнено.