方法一:作比较

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,这种方法引入了计算,效率会降低,所以能加就不要减,能乘就不要除,能不计算就不计算

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

PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取

note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

方法三:

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)

方法五:折半实现

#!/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)

最新文章

  1. java 引用传递及基本应用
  2. 深入研究java.lang.Runtime类
  3. python列表、元祖、字典
  4. python raw String 获取字符串变量中的反斜杠
  5. Cocoapods的安装,卸载和使用
  6. VS2010最常用快捷键
  7. cocoapod的下载安装解释
  8. Eclipse下配置tomcat且使用eclipse开启debug模式,集成JAD反编译插件
  9. zoj 1648 判断线段是否相交
  10. Check Big/Little Endian
  11. [BZOJ 1188] [HNOI2007] 分裂游戏 【博弈论|SG函数】
  12. Socket模拟HTTP请求
  13. Nginx从入门到实践(三)
  14. 【强大精美的PS特效滤镜合集】Alien Skin Eye Candy for Mac 7.2.2.20
  15. KaliLinuxNetHunter教程实施刷机解锁Bootloader
  16. CRM系统(第二部分)
  17. 6、申请发布(Distribution)证书和描述文件
  18. 最大子数组问题/Maximum Subarray
  19. source.android.google &amp;&amp; developer.android.google
  20. 深入浅出理解依赖注入这种由外部负责其依赖需求的行为,我们可以称其为 “控制反转(IoC)”

热门文章

  1. IDEA如何重置窗口布局
  2. 第九次作业——DFA最小化,语法分析初步
  3. 《跟唐老师学习云网络》 -第5篇 Ping喂报文
  4. 英飞凌TC297 PSPR与DSPR
  5. .Net core-邮件发送(同步,异步)底层代码(欢迎留言讨论)
  6. luogu P4302 [SCOI2003]字符串折叠
  7. iOS 自定义TabBarController
  8. 第6节:Java基础 - 三大集合(上)
  9. 2018HDU多校训练-3-Problem D. Euler Function
  10. [Java并发] AQS抽象队列同步器源码解析--锁获取过程