我正在尝试计算输入的位数但是,每当我输入1011或任何两位数时,输出都是325为什么不起作用?

inputnumber = int(input())
countnumber = inputnumber
digitcount = 0
while countnumber > 0:
    digitcount += 1
    countnumber = countnumber/10

print(digitcount)
# result is 325 when input is 10 or 11

最佳答案

你的错误主要发生在这里:

countnumber=countnumber/10

注意,您打算进行整数除法Python 3中的单斜杠除法总是“float”或“real”除法,如果需要,它会产生一个浮点值和一个小数部分。
将其替换为双斜线除法,即整数除法:countnumber = countnumber // 10。在这种情况下,每次执行整数除法时,最右边的数字都会被截断。
您还必须注意输入是否为0。数字0被认为是一位数,而不是零。

10-01 05:38