我正在尝试计算输入的位数但是,每当我输入10
或11
或任何两位数时,输出都是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被认为是一位数,而不是零。