Для этого задания мы должны сделать класс в Python, где мы помещаем 3 балла, и вам нужно найти среднее значение и класс, который имеет студент. Он работает, но у меня ошибка. Когда я добавлю целую цифру (например, 73) три раза, она отобразит класс письма. Но когда я вводил число с десятичной точкой (например, 83.7) три раза, он не отображает оценку букв, и это тот номер, который нам нужен. Есть ли способ, которым я могу показать, что он показывает числа, когда я вводим числа с десятичной точкой? И почему это работает только для целого числа?Моя программа не помещает оценку
class grades:
def __init__(self,name,test1,test2,test3,avg):
self.name = name
self.test1 = test1
self.test2 = test2
self.test3 = test3
self.avg = avg
def getName(self):
return self.name
def getTest1(self):
return self.test1
def getTest2(self):
return self.test2
def getTest3(self):
return self.test3
def getAvg(self):
return self.avg
#main:
name = input("Enter the students name: ")
test1 = float(input("Enter the first score: "))
test2 = float(input("Enter the second score: "))
test3 = float(input("Enter the third score: "))
avg = float(test1 + test2 + test3) /3.0
grades1 = grades(name,test1,test2,test3,avg)
grades1.name
grades1.test1
grades1.test2
grades1.test3
grades1.avg
print("The student's name is:" ,grades1.name)
print(grades1.name +"'s test scores are:")
print("---------------------------:")
print("TEST1: \t\t\t",grades1.test1)
print("TEST2: \t\t\t",grades1.test2)
print("TEST3: \t\t\t",grades1.test3)
print(grades1.name +"'s average is: \t",grades1.avg)
##if avg <= 100.0 and avg >= 90.0:
## print(name +"'s grade is: \t A")
##elif avg <= 89.0 and avg >= 80.0:
## print(name +"'s grade is: \t B")
##elif avg <= 79.0 and avg >= 70.0:
## print(name +"'s grade is: \t C")
##elif avg <= 69.0 and avg >= 60.0:
## print(name +"'s grade is: \t D")
##elif avg <= 59.0 and avg >= 0.0:
## print(name +"'s grade is: \t E")
if avg >= 90.0 and avg <= 100.0:
print(name +"'s grade is: \t A")
elif avg >= 80.0 and avg <= 89.0:
print(name +"'s grade is: \t B")
elif avg >= 70.0 and avg <= 79.0:
print(name +"'s grade is: \t C")
elif avg >= 60.0 and avg <= 69.0:
print(name +"'s grade is: \t D")
elif avg >= 0.0 and avg <= 59.0:
print(name +"'s grade is: \t E")
Причина, по которой я прокомментировал первую часть, объясняется тем, что я пробовал оба пути без везения.
Это то, что я пытался, но не повезло с десятичными знаками
Enter the students name: k
Enter the first score: 89.9
Enter the second score: 89.9
Enter the third score: 89.9
The student's name is: k
k's test scores are:
---------------------------:
TEST1: 89.9
TEST2: 89.9
TEST3: 89.9
k's average is: 89.90000000000002
Я не могу воспроизвести это. Я ввел '75.3'' 76.3' и '77.3', и я получил среднее значение' C'. покажите ваш пример вход пожалуйста. –
Вы получаете сообщение об ошибке или пропущены утверждения 'if-elif'? (Что кажется невозможным) –
Что делать, если среднее значение составляет, например, 89,0 и 90,0? – chepner