添加三位数的总和

use*_*867 2 python

所以我正在编写一个输入3#数字并将其分开的程序.我无法弄清楚如何完全添加单独的数字?

例如:用户输入345

我的程序会将#分开为3,4,5,但我如何将这些数字加在一起呢?

到目前为止这是我的代码,

#set variable
val = raw_input("Type your three digit number please: ")


print 'The first digit is {}'.format(val[0])
print 'The second digit is {}'.format(val[1])
print 'The third digit is {}'.format(val[2])


#set variable
total = [val[0] +val [1] + val[2]]
total_value = total

print 'The sum of the three digits is' total_value
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 6

将所有数字的数字加在一起的简短方法是:

In [3]: sum(map(int, val))
Out[3]: 12
Run Code Online (Sandbox Code Playgroud)

在这里,map(int, val)迭代字符val并将它们中的每一个转换为a int,sum(...)并将所有ints加在一起.

这种方法的好处是它适用于任意数量的数字.

原始代码不起作用的原因是val[0]等等是字符串,因此使用+简单地将这些字符串连接在一起.要添加数值,您必须int先将字符转换为第一个:

In [5]: int(val[0]) + int(val[1]) + int(val[2])
Out[5]: 12
Run Code Online (Sandbox Code Playgroud)