使用python计算输入的位数

Nay*_*eto 4 python decimal digits division python-3.x

我正在尝试计算输入的位数。但是,每当我输入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
Run Code Online (Sandbox Code Playgroud)

Ḿűỻ*_*ṩ ᛗ 5

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

countnumber=countnumber/10
Run Code Online (Sandbox Code Playgroud)

请注意,您打算进行整数除法。Python 3 中的单斜线除法始终是“浮点”或“实数”除法,如有必要,它会产生浮点值和小数部分。

将其替换为双斜线除法,即整数除法: countnumber = countnumber // 10。在这种情况下,每次执行整数除法时,都会切除最右边的数字。

您还必须注意您的输入是否为 0。数字 0 被认为是一位数字,而不是零。