使用While的数字的总和

时间:2014-10-16 15:14:26

标签: python while-loop sum

如何处理函数中给出的数字总和? 像这样:def sum (123)
如何使用python sum 123给6使用?

def calc_soma(num):
    ns = str(num)
    soma = 0
    while soma < len(ns):
        soma = eval(ns[soma])
        soma = soma + 1
    return soma

我尝试了这个,但它不起作用。我是python的新手,所以我没有很多东西

3 个答案:

答案 0 :(得分:6)

为什么只需从整数中获取每个数字,就可以将其转换为字符串?

while num > 0:
    soma += num%10
    num /= 10

答案 1 :(得分:0)

基本上你mod

>>> total = 0
>>> num = 123
>>> while num > 0:
...     total += num % 10
...     num /= 10
...
...
>>> total
6

您可以使用str,但这样会很慢。

答案 2 :(得分:0)

您正在使用soma来保存索引和结果。这是一个修改版本:

>>> def calc_soma(num):
...     ns = str(num)
...     soma = 0
...     indic = 0
...     while indic < len(ns):
...         soma += int(ns[indic])
...         indic = indic + 1
...     return soma
...
>>> calc_soma(123)
6
>>> calc_soma(1048)
13

如果要迭代str,可以使用列表理解:

>>> sum([int(i) for i in str(123)])
6
>>> sum([int(i) for i in str(2048)])
14

你也可以摆脱[/]

sum(int(i) for i in str(123))

(另外,检查一下barak manos的答案。你可以“以数学方式”这样做)