Python 将三位数字之和相加

Python 将三位数字之和相加,python,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

所以我写了一个程序,输入一个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

你只需要这样做:

total = int(val[0]) + int(val[1]) + int(val[2])
由于
val
中的数字是字符,因此必须首先将它们转换为整数。
请注意,在代码中受影响的
[]
值周围没有任何
total
(您不需要列表,只需要一个值)。

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

试试这个:

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

将所有数字相加的一种简单方法是:

In [3]: sum(map(int, val))
Out[3]: 12
这里,
map(int,val)
val
的字符进行迭代,并将每个字符转换为
int
,然后
sum(…)
将所有这些
int
相加

这种方法的优点在于,它适用于任意数量的数字

原始代码无法工作的原因是
val[0]
etc是字符串,因此使用
+
只需将这些字符串重新连接在一起。要添加数值,必须首先将字符转换为
int

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

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

total = int(val[0]) + int(val[1]) + int(val[2])
或者更简洁地说:

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

我想你想要的答案是这样的:

a = int(input("3 digit number:"))
x = a // 100
y = a // 10 % 10
z = a % 10
print (x + y + z)
我是一个彻头彻尾的noob,这是一个关于noobs学习的ez问题,但是当我寻找ez答案时,我在任何地方都找不到它()这个问题是将“三”位数相加。。。 我挂断了如果数字是5或6长不知道代码会是什么样子,如果数字没有定义

答复:

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))

但在我正确理解这一点之前,我还有很多路要走

无需在这里创建
列表
。。。只需将其保留为
int(x)就可以了。
请仔细阅读您的文档。@SantoshKumar确实如此!为什么同样的问题要问两次?听起来像是迫不及待地要完成一些家庭作业D
number = map(int, str(input('Enter a number: ')))
print(sum(number))