Функция суммы function TypeError: неподдерживаемый тип операндов для +: 'int' и 'str'

Я новичок в python (PYTHON 3.4.2), и я пытаюсь создать программу, которая добавляет и делит, чтобы найти среднее или среднее значение ввода пользователя, но я не могу понять, как добавить числа I Получать.

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

Я получаю эту ошибку:

TypeError: unsupported operand type(s) for +: 'int' and 'str' 

Мой код ниже:

 #Take the user's input numbers = input("Enter your numbers followed by commas: ") sum([numbers]) 

Любая помощь будет глубоко оценена.

5 Solutions collect form web for “Функция суммы function TypeError: неподдерживаемый тип операндов для +: 'int' и 'str'”

input принимает ввод как строку

 >>> numbers = input("Enter your numbers followed by commas: ") Enter your numbers followed by commas: 1,2,5,8 >>> sum(map(int,numbers.split(','))) 16 

вы говорите, что пользователь должен вводить данные с запятой, поэтому вам нужно разбить строку запятой, а затем преобразовать их в int, а затем суммировать ее

демо:

 >>> numbers = input("Enter your numbers followed by commas: ") Enter your numbers followed by commas: 1,3,5,6 >>> numbers '1,3,5,6' # you can see its string # you need to split it >>> numbers = numbers.split(',') >>> numbers ['1', '3', '5', '6'] # now you need to convert each element to integer >>> numbers = [ x for x in map(int,numbers) ] or # if you are confused with map function use this: >>> numbers = [ int(x) for x in numbers ] >>> numbers [1, 3, 5, 6] #now you can use sum function >>>sum(numbers) 15 

input даст вам строку, и вы пытаетесь конкатрировать строку с int.

Сначала вам нужно преобразовать элементы «числа» в int, не нужно лишать запятую или пробелы. Этот код довольно прост и работает отлично.

 numbers = input("Enter your numbers followed by commas: ") numbers_int = [int(x) for x in numbers] numbers_sum = sum(numbers_int) print numbers_sum 

Попробуйте следующий код. Меня устраивает. Фактически input() пытается запустить ввод как выражение Python. Но raw_input() принимает ввод как строку. input() существует в Python 3.x.Вы можете найти более подробную информацию здесь

 numbers = input("Enter your numbers followed by commas: ") ## takes numbers as input as expression print sum([i for i in numbers]) ## list comprehension to convert the numbers into invisible list. This is done because `sum()` runs only on iterable and list is iterable. 

Вывод:

 Enter your numbers followed by commas: 1,2,3,4 10 

Простой: элементы списка хранятся в виде строки 🙂 Таким образом, вы должны преобразовать все из них в int

Python - лучший язык программирования в мире.