虽然 True 循环在调用 return 后不会中断
While True loop doesn't break after calling return
我正在尝试编写一个函数,它将接受一个整数,将其分成数字,然后将它们相加,如果总和 >=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
我正在尝试编写一个函数,它将接受一个整数,将其分成数字,然后将它们相加,如果总和 >=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