给一个正整数,要求它是几位数,为啥代码运行结果不对

刚学Python,在拿几个小栗子练手,被卡住了,这样写为啥运行结果不对呐,

img

if t/10:改为 if t//10: , t/=10改为 t=t//10
因为t//10才是整除,t/10的结果是浮点数
比如输入123,t/10的结果是12.3,不是12,t//10才是12,修改如下:

t = int(input())
i=1
while True:
    if t//10:
        i=i+1
        t=t//10
        print(t)
    else:
        break
print(i)

你初始统计位数的i应该为0,不然还没开始就有1位了
另外判断条件应该是t>1

t=int(input())
i=0
while True:
    if t>1:
        i+=1
        t=t/10
    else:
        break
print(i)
     

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632