首页 > 解决方案 > 遇到循环计算数字中位数的问题

问题描述

我的任务要求我接受输入,确定所述输入中有多少位数字,然后将其吐出。我们不允许使用字符串转换来确定输入的长度。我已经设法让它正常工作。我的问题是我应该让它循环重复,直到到达哨兵。到目前为止,这是我的代码。

print("This program determines the number of digits in a number.")
print("Enter a number, or 0 to quit.")
count = 0
num = 1
final = 0

num = int(input("Enter a number: "))
while num != 0:
    num = num //10
    count += 1
print("There are", count, "digits in", num)

我似乎也无法正确打印输入整数,但这可能只是我的无知。我已经取消了循环它的尝试,因为它们似乎都更加破坏了代码。欢迎任何帮助,甚至批评!先感谢您!

标签: python

解决方案


正确打印输入整数的问题在于,您首先将其保存在 num 变量中,然后在您的 while 循环中不断更改它。所以原始输入当然会丢失,最后它总是打印 0,在 while 循环结束后以 num 结束。

您可以通过将输入值保存到另一个变量来轻松修复它,您不会在循环中触及该变量。

print("This program determines the number of digits in a number.")
print("Enter a number, or 0 to quit.")
count = 0
num = int(input("Enter a number: "))
numcopy = num
while numcopy != 0:
    numcopy = numcopy // 10
    count += 1
print("There are", count, "digits in", num)

推荐阅读