Программа для вычисления среднего арифметического числа не работает

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
Программа должна принимать оценки и программа должна всё считать автоматически (пользователь не должен сам вводить кол-во оценок).
Python:
n = int(input('Введите оценки: '))
list = [n]

answer = sum(list) / len(list)
print('Средне арифметическое: ', mat)

Но данный код выдает ошибку ValueError: invalid literal for int() with base 10: '5 5 5'

Прошу помочь или подправить код.
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
разберитесь с типами данных, которые скармливаете скрипту.
input принимает строку.
обернув ее в list, получим список со всеми пробелами и знаками препинания.
и служебное слово list нельзя использовать, как переменную.

Python:
input_str = list(input('Введите оценки: '))  # 5, 5, 5
print(input_str)  # ['5', ',', ' ', '5', ',', ' ', '5']
numbers = [int(x) for x in input_str if x.isnumeric()]
print(numbers)  # [5, 5, 5]
answer = sum(numbers) / len(numbers)
print('Средне арифметическое: ', answer)
 
  • Мне нравится
Реакции: 4olshoy_blen и regnor

IvanElov

Новичок
Пользователь
Окт 25, 2023
9
0
1
спасибо большое
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
спасибо большое

уточню

и служебное слово list нельзя использовать, как переменную.
можно, НО
list - это функция из стандартной библиотеки, и если сделать переменную list, таким образом вы ее переопределяете, и можно получить неопределенное поведение, так как list теперь будет ссылаться на вашу переменную, а не на функцию из стандартной библиотеки
 

Форум IT Специалистов