#python #python-3.x
#python #python-3.x
Вопрос:
Я пытаюсь написать программу, которая вычисляет оценки, вычисляет среднее значение и показывает ошибку при вводе букв. Я думаю, что я в значительной степени закончил с кодом, но я запутался в том, как исправить проблему «TypeError: объект ‘float’ не поддается повторению».
def calculate_average(total, count):
average = total / count
return average
while 1:
try:
grade = float(input("Enter a test score, or a negative number to get the average: "))
total = sum(grade)
count = len(grade)
if grade < 0:
break
average = calculate_average(total, count)
print("Total: ", total)
print("Average:", round(average))
except ValueError:
print("BRUH")
Комментарии:
1.
total = sum(grade)
? Это не так, как это работает, это не так, как все это работает!2.
grade
это одна оценка, а не список оценок.
Ответ №1:
Очевидно, вы хотите, чтобы пользователь вводил несколько чисел. Однако в вашем коде пользователь может ввести только одно число, и один foat, очевидно, не может быть суммирован и не имеет длины.
Вам нужен список, содержащий все оценки, и после того, как пользователь ввел все оценки и отрицательное число, вы можете оценить этот список и вычислить среднее значение.
Вот рабочий пример:
def calculate_average(total, count):
average = total / count
return average
while 1:
grades = []
while 1:
inp = input("Enter a test score, or a negative number to get the average: ")
try:
inpGrade = float(inp)
if inpGrade > 0:
grades.append(inpGrade)
elif inpGrade < 0:
break
except ValueError:
print("BRUH")
total = sum(grades)
count = len(grades)
average = calculate_average(total, count)
print("Total: ", total)
print("Average:", round(average))
break