如何在python中获得数字总和

Ale*_*lis 3 python

我想说

num = 123456
Run Code Online (Sandbox Code Playgroud)

如何获得21的数字和?如何使用sum()函数?我尝试了sum(num)但它说'int'对象不可迭代.

Ash*_*ary 13

您必须先将其更改为字符串:

In [24]: num = 123456

In [25]: sum(int(x) for x in str(num))
Out[25]: 21
Run Code Online (Sandbox Code Playgroud)

无需转换为字符串:

def solve(n):
    summ=0
    while n:
        summ+= n%10
        n/=10
    return summ
   ....: 

In [38]: solve(123456)
Out[38]: 21
Run Code Online (Sandbox Code Playgroud)


Chr*_*our 7

单程:

In [1]: num=123456

In [2]: sum(map(int,str(num)))
Out[2]: 21

In [3]: def digitsum(x):
   ...:     return sum(map(int,str(x)))
   ...: 

In [4]: digitsum(num)
Out[4]: 21
Run Code Online (Sandbox Code Playgroud)