虽然 True 循环在调用返回后不会中断



我正试图编写一个函数,它将取一个整数,将其划分为数字,求和,如果和为>10,循环这个过程,直到我得到一个个位数的和。有人能告诉我为什么我的"while True"循环没有打破吗:

def digital_root(n):
while True:
digits = []
for i in str(n):
digits.append(int(i))
if sum(digits) < 10:
return sum(digits)

我并不是真的在寻找最佳解决方案,我只是想知道为什么这不起作用。

您应该在每次迭代中更新n的值,如下所示:

def digital_root(n):
while True:
digits = []
for i in str(n):
digits.append(int(i))
n = sum(digits)  # add
if n < 10:
return n

最新更新