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

别说谁变了你拦得住时间么 提交于 2019-11-30 10:30:54

input takes a input as string

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

you are telling user to give input saperated by comma, so you need to split the string with comma, then convert them to int then sum it

demo:

>>> 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 will give you string, and you are trying to concat string with int.

First you need to convert elements of "numbers" to int, no need to strip the comma or whitespaces. This code is pretty straight forward and works fine.

numbers = input("Enter your numbers followed by commas: ")

numbers_int = [int(x) for x in numbers]

numbers_sum = sum(numbers_int)

print numbers_sum
d-coder

Try the following code. It works for me. Actually input() tries to run the input as a Python expression. But the raw_input() takes the input as string. input() exists in Python 3.x.You can find more details here

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.

Output:

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

Simple: the list elements are stored as string :) So you have to convert all of them to int

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!