我试图通过循环找到数字的数字和
我创建了一个辅助函数,使数字成为一个列表。
但是,我一直在问invalid literal for int() with base 10: '['
。
def digital_helper(num):
a = num
b = str(a)
list1 = []
for digits in b:
list1.append(int(digits))
return list1
def digital_sum(num):
while len(digital_helper(num)) > 1:
return digital_sum(digital_helper(sum(digital_helper(num))))
else:
return sum(digital_helper(num))
错误:
>>> digital_sum(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in digital_sum
File "<stdin>", line 2, in digital_sum
File "<stdin>", line 6, in digital_helper
ValueError: invalid literal for int() with base 10: '['
答案 0 :(得分:2)
密切关注球:
num
最初是一个整数。 digital_helper()
但是,会返回一个列表,然后再将其传递给digital_sum()
:
return digital_sum(digital_helper(...))
在digital_sum()
的递归电话中,num
现在是一个列表。
num
传递给digital_helper()
,但现在它是一个列表,代码失败。代码失败,因为[1, 2, 3]
转换为字符串的数字列表包含字符'['
,而且不是整数。