方法一:作比较

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)

用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. .Net Core+Vue.js模块化前后端分离快速开发框架NetModular更新日志(2019-12-08)

    源码 GitHub:https://github.com/iamoldli/NetModular 码云:https://gitee.com/laoli/NetModular 欢迎star~ 文档 ht ...

  2. react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...

  3. lerna式升级

    有段时间没更新博客了,是时候更新一波了. 之前不是vue-next出了吗,然后就去学习了一下,发现整个目录不是那么熟悉了,变成这样了: 于是就这个线索去研究了一下,发下这是用的 lerna + yar ...

  4. 曹工杂谈:Spring boot应用,自己动手用Netty替换底层Tomcat容器

    前言 问:标题说的什么意思? 答:简单说,一个spring boot应用(我这里,版本升到2.1.7.Release了,没什么问题),默认使用了tomcat作为底层容器来接收和处理连接. 我这里,在依 ...

  5. GROUP_CONCAT在组合商品中的使用

    表:combined_product_item -------------------------pid sku quality-------------------------1 sku1 11 s ...

  6. BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8172  Solved: 4470[Submit][Sta ...

  7. LNMP架构的搭建

    第9章 LNMP架构的搭建 9.1 什么是LNMP 9.1.1 LNMP的组成 L                linux N                nginx:实现静态的服务处理 M    ...

  8. Proxmox VE虚拟化管理平台-相关概念

    请阅读此文用户务必阅读以下链接,其中包含了汉化作者.张自然copy过来的原因等信息. www.zhangziran.com/proxmox-docs-zh-cn.htm a Proxmox VE 集群 ...

  9. PyCharm配置Gitee

    PyCharm配置Gitee 第一步:下载安装Git https://git-scm.com/download/win 第二步:打开PyCharm,配置Git File->Setting-> ...

  10. js打乱数组排序

    用到的知识点:Math.random()//用于打乱数组索引 random() 方法可返回介于 0(包含) ~ 1(不包含) 之间的一个随机数. var arr=[1,2,3,4,5,6]; for( ...