Nay*_*eto 4 python decimal digits division python-3.x
我正在尝试计算输入的位数。但是,每当我输入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
Run Code Online (Sandbox Code Playgroud)
您的错误主要发生在这里:
countnumber=countnumber/10
Run Code Online (Sandbox Code Playgroud)
请注意,您打算进行整数除法。Python 3 中的单斜线除法始终是“浮点”或“实数”除法,如有必要,它会产生浮点值和小数部分。
将其替换为双斜线除法,即整数除法: countnumber = countnumber // 10
。在这种情况下,每次执行整数除法时,都会切除最右边的数字。
您还必须注意您的输入是否为 0。数字 0 被认为是一位数字,而不是零。