添加三位数的总和

时间:2013-03-22 09:45:27

标签: 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

6 个答案:

答案 0 :(得分:6)

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

In [3]: sum(map(int, val))
Out[3]: 12

此处,map(int, val)会对val的字符进行迭代,并将每个字符转换为intsum(...)将所有int加在一起。

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

原始代码不起作用的原因是val[0]字符串,因此使用+只需将这些字符串连接在一起即可。要添加数值,您必须先将字符转换为int

In [5]: int(val[0]) + int(val[1]) + int(val[2])
Out[5]: 12

答案 1 :(得分:3)

您必须将各个组件转换为数字才能添加它们:

total = int(val[0]) + int(val[1]) + int(val[2])

或者,更简洁:

total = sum(int(x) for x in val)

答案 2 :(得分:2)

一个优雅的解决方案是使用python的内置函数mapsum

val = raw_input("Type your three digit number please: ")
total = sum(map(int, val))
print 'The sum of the three digits is', total

答案 3 :(得分:1)

你必须这样做:

total = int(val[0]) + int(val[1]) + int(val[2])

由于val中的数字是字符,因此必须先将它们转换为整数。 请注意,在您的代码中,[ ]total影响的值不会{{1}}(您不想要列表,只需要一个值)。

答案 4 :(得分:1)

试试这个:

res = raw_input("Enter value: ")
print sum(map(int, res))

答案 5 :(得分:0)

我认为您要寻找的答案是这样的:

a = int(input("3 digit number:"))
x = a // 100
y = a // 10 % 10
z = a % 10
print (x + y + z)

我是一个菜鸟,它是菜鸟学习的ez问题,但是当寻找ez答案时,我在任何地方都找不到它(here)问题是将“三个”数字的总和相加。 .. 如果数字是5或6个长字符,我就挂断电话了。如果没有定义数字,代码会是什么样子。

answer:

a = int(input("enter a few numbers:"))
conversion = str(a)
number =[]
for i in conversion:
    a = int(i)
    number.append(a)
print (sum(number))

或如前所示:

number = map(int, str(input('Enter a number: ')))
print(sum(number))

但是我仍然有路要走,直到我正确理解为止