方法一:作比较

  1. [root@python markPy]# cat five.py
  2. #!/usr/bin/python3
  3. a=int(input(">>>>"))
  4. if a<10:
  5. print(1)
  6. elif a<100: #第一个条件已经过滤了大于9,所以这里区间是11到100
  7. print(2)
  8. elif a<1000:
  9. print(3)
  10. elif a<10000:
  11. print(4)
  12. else:
  13. 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)
  12.  
  13. 分析:假设是在5位的情况下,不考虑其他状况
  14. In [1]: 6666 // 10000
  15. Out[1]: 0 除以10000为零证明是小于5位数
  16.  
  17. In [2]: 6666 // 1000
  18. Out[2]: 6 但是如果能被1000整除,它就是一个4位数
  19.  
  20. In [3]: 6666 // 100
  21. Out[3]: 66
  22.  
  23. In [4]: 6666 // 10
  24. Out[4]: 666
  25.  
  26. In [5]: 6666 // 1
  27. Out[5]: 6666

方法三:

  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)

欢迎补充~

  

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

  1. 用Python6种方法:给定一个不超过5位的正整数,判断有几位

    方法一:作比较 a=int(input(">>>>")) if a<10: print(1) elif a<100: #第一个条件已经过滤了大于 ...

  2. python 实现整数的反转:给定一个整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.

    给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321. # 第一种方法,使用lstrip函数去反转后,数字前面的0 import math num ...

  3. 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)

    需求:给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换) 如: a 不替换 b 不替换  ab 不替换 ba 不替换 aba 不替换  aab 替换为 ...

  4. 给定一个整数实现奇偶bit位互换

    1.分别取出所有奇数bit位和偶数bit位 0x55555555(对应二进制奇数bit位为1,偶数bit位全为0)&num 0xaaaaaaaa(对应二进制即偶数bit位为1,奇数bit位全为 ...

  5. 任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0。

    题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由 ...

  6. 【Python】如何基于Python写一个TCP反向连接后门

    首发安全客 如何基于Python写一个TCP反向连接后门 https://www.anquanke.com/post/id/92401 0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的 ...

  7. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  8. 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数

    1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...

  9. 课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

    题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12)  ...

随机推荐

  1. Docker 前沿概述

    目录 Docker 前沿概述 什么是Docker? Docker的基本概念 容器(Container) -- 镜像运行时的实体 镜像(Image) -- 一个特殊的文件系统 仓库(Repository ...

  2. laravel新项目报错 No application encryption key has been specified.

    解决办法, 若文件根目录下没有 .env 1..env.example 改名使用命令 copy 修改为 .env 2.使用命令 php artisan key:generate  获取密码,自动保存到 ...

  3. pythonday01计算机初步认识

    1.计算机的初步认识 常见的操作系统: win:xp,win7,win8,win10,windows server linux:centos图形化界面差,ubuntu个人开发,图形界面好,redhat ...

  4. 1.Apache的配置

    1.phpStudy的目录结构 1.1phpStudy的主目录路径:F:\phpStudy 1.2Apache的主目录路径 2.Apache启动和停止方法 2.1.通过任务栏phpStudy 图片进行 ...

  5. 种族并查集模板题分析 -----P2024 [NOI2001]食物链

    本文参考了:洛谷p2024题解 题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都 ...

  6. 2019-SUCTF-web记录

    1.web1-chkin 首先发现服务器中间件为nginx,并且fuzz上传过滤情况,是黑名单,带ph的全部不能上传切对文件内容中包含<?进行过滤,并且服务器对文件头有exif_type的判断, ...

  7. 2014-09~11Removeapp配置篇

    金蝶ERP软件  Windows REMOVEAPP 功能需求:将服务器端金蝶客户端软件直接在本地实现,只需输入服务器密码即可启动该软件 配置需求:可用的金蝶软件,SERVER2008 或更高(必须激 ...

  8. 基于python的mysql复制工具

    一简介 python-mysql-replication 是由python实现的 MySQL复制协议工具,我们可以用它来解析binlog 获取日志的insert,update,delete等事件 ,并 ...

  9. Qt无边框窗体-最大化时支持拖拽还原

    目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...

  10. d3.js V5版本在vue里使用 自定义节点图片

    var width = this.$refs.topInfo.offsetWidth; var height = this.$refs.topInfo.offsetHeight; var img_w ...