Función de sum prob TypeError: tipo (s) de operando no compatibles para +: ‘int’ y ‘str’

Soy nuevo en Python (PYTHON 3.4.2) y estoy tratando de hacer un progtwig que se agregue y divida para encontrar el promedio o la media de la entrada de un usuario, pero no puedo averiguar cómo sumr los números I recibir.

Cuando abro el progtwig en el símbolo del sistema, acepta los números que ingresé y lo imprimiría también si utilizara una función de impresión, pero no resumirá los números.

Recibo este error:

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

Mi código está abajo:

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

Cualquier ayuda sería muy apreciada.

    input toma una entrada como cadena

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

    le está diciendo al usuario que proporcione información por comas, por lo que necesita dividir la cadena con una coma, luego convertirlos a int y luego sumrlos

    manifestación:

     >>> 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 le dará una cadena, y usted está intentando concatear una cadena con int.

    Primero debe convertir los elementos de “números” en int, sin necesidad de eliminar la coma o los espacios en blanco. Este código es bastante sencillo y funciona bien.

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

    Prueba el siguiente código. Esto funciona para mi. En realidad input() intenta ejecutar la entrada como una expresión de Python. Pero el raw_input() toma la entrada como una cadena. input() existe en Python 3.x.Usted puede encontrar más detalles aquí

     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. 

    Salida:

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

    Simple: los elementos de la lista se almacenan como una cadena 🙂 Por lo tanto, debe convertirlos todos a int.