#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)