用Python6种方法:给定一个不超过5位的正整数,判断有几位
admin
2023-06-25 17:42:08
0

方法一:作比较

a=int(input(">>>>"))
if a<10:            
    print(1)
elif a<100:   #第一个条件已经过滤了大于9,所以这里区间是11到100
    print(2)
elif a<1000:
    print(3)
elif a<10000:
    print(4)
else:
    print(5)

方法二:使用整除实现,除完后如果是个0或不是个0,这种方法引入了计算,效率会降低,所以能加就不要减,能乘就不要除,能不计算就不计算

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
i = int(intput('>>>')
if i // 10000:
    print(5):
elif i // 1000:
    print(4)
elif i // 100:
    print(3)
elif i // 10:
    print(2)
else:
    print(1)

分析:假设是在5位的情况下,不考虑其他状况

In [1]: 6666 // 10000
Out[1]: 0                除以10000为零证明是小于5位数

In [2]: 6666 // 1000
Out[2]: 6                但是如果能被1000整除,它就是一个4位数

In [3]: 6666 // 100
Out[3]: 66

In [4]: 6666 // 10
Out[4]: 666

In [5]: 6666 // 1
Out[5]: 6666

方法三:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a=int(input(">>>"))
if a<0:
    print("Format is wrong")
elif a<100000:    ##限定5位
    if a<10:
        print(1)
    elif a<100:
        print(2)
    elif a<1000:
        print(3)
    elif a<10000:
        print(4)
    else:  
        print(5)
else:
    print("请输入一个不超过5位的数")

方法四:字符串处理实现

#!/usr/bin/python3
nnumber=input(">>>>")
length=len(nnumber)
if length>4:
    print(5)
elif length>3:
    print(4)
elif length>2:
    print(3)
elif length>1:
    print(2)
else:
    print(1)

方法五:折半实现

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#!/usr/bin/python3
number = int(input("number >> "))
if number >= 100:       ##直接从100开始折
    if number >= 10000:
        print("5")
    elif number >= 1000:
        print("4")
    else:
        print("3")
else:
    if number >= 10:
        print("2")
    else:
        print("1")

方法六:math实现,这种方法比除法的更慢,如果循环100万次就很明显

number=int(input("输入一个不超过5位的正整数: ")
if a<=0 or a>=100000:
    print('请输入一个不超过5位的正整数')
else:
    import math
    b=int(math.log10(a)+1)
    print(b)

相关内容

热门资讯

电视为什么一直闪屏 由于电源电压不稳定或电源供电不足的缘故、电视分辨率的故障、电视存在周围有电磁干扰的缘故、电视的刷新频...
专访塞尔维亚总统武契奇 塞尔维亚总统武契奇首次对中国进行国事访问,接受《高端访谈》专访。他说,这是他政治生涯中最重要的一次访...
大理宾川:六一儿童节前夕,警方... “大风在刮,大雪在下。烽火中拼杀,危难的关头热血护中华。不怕流血,不怕牺牲。只为守护家,先烈用生命换...
杀入固态电池赛道,5150 亿... 农夫山泉创始人、前中国首富钟睒睒,又有新动作! 近日,钟睒睒通过旗下养生堂战略投资固态电池材料企业智...
南京测试机器人楼宇外立面清洗,... 扬子晚报网5月29日讯(记者 张可)南京存量楼宇数量庞大、外立面日常养护、翻新清洁需求旺盛。长期以来...
特朗普推迟就伊朗相关协议作最终... 新华社华盛顿5月29日电(记者黄强 徐剑梅)据美国《纽约时报》29日援引一名不愿透露姓名的政府高级官...
字节跳动AI4S团队调整,由杨... 有传言称,字节Seed旗下AI4S团队,正在讨论新一轮组织调整,包括从字节分拆的可能性。 5月29日...
算启新程 智领未来 中国移动亮... 蓬勃盛夏,智潮奔涌。5月28日,2026世界智能产业博览会(以下简称“智博会”)在天津盛大开幕。作为...
原创 v... PChome 5月29日评测,作为一个手机相册里存着几千张Live图的人,vivo S系列一直是我的...
神舟二十一号航天员乘组平安抵京 据中国载人航天工程办公室消息,圆满完成神舟二十一号载人飞行任务的航天员乘组,于北京时间2026年5月...