【发布时间】:2019-12-01 12:05:40
【问题描述】:
这个函数应该返回一个数字的数字总和。
我使用new = str(x)将新变量转换为字符串
def digital_root(x):
sum=0
new = str(x)
while len(new) > 2:
for i in new:
sum = sum + int(i)
new = sum
if len(str(new))==2:
return int(new[0])+int(new[1])
调用例如digital_root(65536)。但它返回:
TypeError: 'int' 类型的对象没有 len()
【问题讨论】:
-
提示:当你说
new = sum时,new现在有什么类型? -
发布有关错误的问题时,请发布完整的错误跟踪,从
Traceback (most recent call last)开始直到结束 -
digital_root = lambda x: sum(map(int, str(x)))