Неправильное выполнение типа функции выражения

#python

#python

Вопрос:

Я написал небольшую программу на python После ввода оценок учащихся, если вы введете -1, программа автоматически вычислит количество учащихся, оценки учащихся и средние оценки учащихся, но в программе появилось сообщение об ошибке ошибка выполнения Делает невозможным выполнение

    avg=sum1/(len(score)-1)
TypeError: object of type'int' has no len()
 

Я надеюсь, что смогу попросить всех о помощи
Мой код:

 stu=list()
sum1=0
while True:
     score=int(input("Please enter the student's score:"))
     if score==-1:
         break
     stu.append(score)
     sum1 =score
print("Total",len(stu),"students")
avg=sum1/(len(score)-1)
print("Class total score",str(sum1),"points",", average grade:",str(avg),"points")
 

Спасибо всем

Комментарии:

1. Вы вычисляете среднее значение, используя score , но вместо этого вы должны использовать количество учащихся. Попробуйте это вместо avg=sum1/(len(stu))

Ответ №1:

Ошибка, которую вы делали, заключается в том, что вы пытаетесь получить len результат, который вы преобразовали в целое число. Вместо этого замените len(score) на len(stu) .

Но я предлагаю улучшенную версию для этого кода. Здесь вместо ввода оценок один за другим, вы должны вводить их через пробел.

 
student_scores = list(map(int(input("Please enter the scores of the students each separated by a space:n"))))

average = sum(student_scores) / len(student_scores)

print(f"Class total score: {sum(student_scores)} points")
print(f"Class average score: {average} points")

 

Ответ №2:

 students = []
sum1 = 0

while True:
    score = int(input("Enter student score: "))

    if score == -1:
        break

    else:
        students.append(score)
        sum1  = score

average = sum1/(len(students) - 1)

# 'f' string allows you to put any type value inside a string including integers
print(f"Students: {len(students)}")
print(f"Class total score: {sum1} points")
print(f"Average grade: {average} points")
 

Ответ №3:

Вы пытаетесь взять длину из int , я полагаю, вам не нужно использовать len() там

попробуйте: avg=sum1/(score-1) или: avg=sum1/(len(stu)-1)