如何处理函数中给出的数字总和?
像这样: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的新手,所以我没有很多东西
答案 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的答案。你可以“以数学方式”这样做)