【发布时间】:2022-01-16 05:07:12
【问题描述】:
我编写了这段代码来总结一个大于 10 的数字的数字,直到结果只有一个数字,当我尝试编译它时,它甚至不会给我一个错误,直到我停止它。我想知道是什么问题。
number = input()
#sumed_up_digits = result
result = 0
while len(number) != 1:
for i in number:
int_i = int(i)
result = result + int_i
number = str(result)
print(result)
【问题讨论】:
-
尝试使用调试器来捕获错误。 IMO,结果是一个增加的值,而不是一个减少的值。因此,如果它的初始值长于 1 个字符,它将永远不会停止。
-
尝试将 result = 0 放在 while 和 for 之间,而不是在 while 将 sum = 0 之前放入 result,在 for 之后将结果添加到 sum,然后在末尾打印 sum。你写的结果是累积的,它将包括所有以前的总和,这些总和会继续增加。
-
问题是当我们输入一个大于10的数字时,我们不会得到一个数字!
-
所以while循环变成了无限循环:)
标签: python string while-loop digits