方法一:作比较

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

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

  1. i = int(intput('>>>')
  2. if i // 10000:
  3. print(5):
  4. elif i // 1000:
  5. print(4)
  6. elif i // 100:
  7. print(3)
  8. elif i // 10:
  9. print(2)
  10. else:
  11. print(1)

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

  1. In [1]: 6666 // 10000
  2. Out[1]: 0 除以10000为零证明是小于5位数
  3. In [2]: 6666 // 1000
  4. Out[2]: 6 但是如果能被1000整除,它就是一个4位数
  5. In [3]: 6666 // 100
  6. Out[3]: 66
  7. In [4]: 6666 // 10
  8. Out[4]: 666
  9. In [5]: 6666 // 1
  10. Out[5]: 6666

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

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

方法三:

  1. a=int(input(">>>"))
  2. if a<0:
  3. print("Format is wrong")
  4. elif a<100000: ##限定5位
  5. if a<10:
  6. print(1)
  7. elif a<100:
  8. print(2)
  9. elif a<1000:
  10. print(3)
  11. elif a<10000:
  12. print(4)
  13. else:
  14. print(5)
  15. else:
  16. print("请输入一个不超过5位的数")

方法四:字符串处理实现

  1. #!/usr/bin/python3
  2. nnumber=input(">>>>")
  3. length=len(nnumber)
  4. if length>4:
  5. print(5)
  6. elif length>3:
  7. print(4)
  8. elif length>2:
  9. print(3)
  10. elif length>1:
  11. print(2)
  12. else:
  13. print(1)

方法五:折半实现

  1. #!/usr/bin/python3
  2. number = int(input("number >> "))
  3. if number >= 100: ##直接从100开始折
  4. if number >= 10000:
  5. print("5")
  6. elif number >= 1000:
  7. print("4")
  8. else:
  9. print("3")
  10. else:
  11. if number >= 10:
  12. print("2")
  13. else:
  14. print("1")

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

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

用Python6种方法:给定一个不超过5位的正整数,判断有几位的更多相关文章

  1. 可采用两种方法得到一个EJB对象

    (本文是转载其他人的技术文章,觉得说得挺浅显易懂,特借来学习)     在前面学习的例子中,只有一个EJB,但是对于一个真实的项目,EJB的数量可以有很多,而且EJB之间也会互相调用,那么在一个EJB ...

  2. Python:给定一个不超过5位的正整数,判断有几位

    方法一:作比较 [root@python markPy]# cat five.py #!/usr/bin/python3 a=int(input(">>>>" ...

  3. JavaScript两种方法来定义一个函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 解析Jquery取得iframe中元素的几种方法

    iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下   DOM方法:父窗口操作IFRAME:window.frames[&q ...

  5. 解决iReport打不开的一种方法

    解决iReport打不开的一种方法 iReport版本:iReport-5.6.0-windows-installer.exe 系统:Win7 64位 JDK:1.7 在公司电脑安装没问题,能打开,但 ...

  6. Servlet 响应 响应相关与重定向 请求 获取表单数据2种方法

    一.HttpServletResponse  (响应) 包括下面三个: 1.响应消息行  HTTP/1.1  200 OK 200是HTTP状态码, 代表请求已成功. (查httpservletres ...

  7. (PASS)JAVA数组去重 三种方法 (不用集合)

    第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...

  8. iOS 批量上传图片的 3 种方法

    AFNetworking 在去年年底升级到了 3.0.这个版本更新想必有很多好处,然而让我吃惊的是,它并没有 batch request 接口.之前的 1.x 版本.2.x 版本都实现了这个很常见的需 ...

  9. JS数据类型判断的几种方法

    JS数据类型判断 JavaScript 中常见数据类型有Number.String.Boolean.Object.Array.Json.Function.Date.RegExp.Error.undef ...

随机推荐

  1. gulp+webpack+angular1的一点小经验(第二部分webpack包起来的angular1)

    又一周过去了,项目也已经做得有点模样了.收集来一些小经验,分享给大家,有疏漏之处,还望指正,海涵. 上周整合了gulp与webpack,那么工具准备差不多了,我们就开始编码吧.编码的框架就是angul ...

  2. 01Shell入门02-echo和printf

    输出方式 小知识 echo echo -e 可以控制字体颜色和背景颜色输出 示例 echo -e "\033[41;36m Hello world \033[0m" [root@h ...

  3. 批量注释 control+/

    批量注释 control+/ You can comment and uncomment lines of code using Ctrl+斜杠.Ctrl+斜杠 comments or uncomme ...

  4. mysql 授权用户 主从和备份

    1.授权用户 mysql -uroot -p123qqq...A                     进入数据库 grant   all     on     *.*     to   dc@&q ...

  5. 借 redis cluster 集群,聊一聊集群中数据分布算法

    Redis Cluster 集群中涉及到了数据分布问题,因为 redis cluster 是多 master 的结构,每个 master 都是可以提供存储服务的,这就会涉及到数据分布的问题,在新的 r ...

  6. 使用 nginx 实现虚拟主机

    当多个系统需要部署的时候,有系统访问很小,为了节省成本,就需要将多个系统部署到同一台服务器上,怎么在同一台服务器上,完成不同系统的部署和访问,就需要使用虚拟主机实现. 使用端口实现虚拟主机 配置 ng ...

  7. Orleans的深入

    1.序列化  序列化配置有几个坑这里我写出来 2.负载均衡 3.定时器与提醒 4.服务启动执行代码 5.监控 序列化 新建实体类 引用的包 Microsoft.Orleans.Core V2.12 M ...

  8. Java instanceof 和 Class.isInstance()区别与应用

    一.instanceof 关键字 instanceof 关键字用于判断某个实例是否是某个类的实例化对象,形如: String.class instanceof Class "test&quo ...

  9. 笔记||Python3之列表与元组

    列表List: 特性:①列表也是一种Squence类型 ②下标 ③能切片 ④可以存储任何类型的数据,每个元素是任意类型 ⑤内容可以改变:增删改查 1  --  值   列表的元素值是可以改变的   a ...

  10. 【Nodejs】392- 基于阿里云的 Node.js 稳定性实践

    前言 如果你看过 2018 Node.js 的用户报告,你会发现 Node.js 的使用有了进一步的增长,同时也出现了一些新的趋势. Node.js 的开发者更多的开始使用容器并积极的拥抱 Serve ...