用Python6种方法:给定一个不超过5位的正整数,判断有几位
方法一:作比较
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位的正整数,判断有几位的更多相关文章
- 可采用两种方法得到一个EJB对象
(本文是转载其他人的技术文章,觉得说得挺浅显易懂,特借来学习) 在前面学习的例子中,只有一个EJB,但是对于一个真实的项目,EJB的数量可以有很多,而且EJB之间也会互相调用,那么在一个EJB ...
- Python:给定一个不超过5位的正整数,判断有几位
方法一:作比较 [root@python markPy]# cat five.py #!/usr/bin/python3 a=int(input(">>>>" ...
- JavaScript两种方法来定义一个函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&q ...
- 解决iReport打不开的一种方法
解决iReport打不开的一种方法 iReport版本:iReport-5.6.0-windows-installer.exe 系统:Win7 64位 JDK:1.7 在公司电脑安装没问题,能打开,但 ...
- Servlet 响应 响应相关与重定向 请求 获取表单数据2种方法
一.HttpServletResponse (响应) 包括下面三个: 1.响应消息行 HTTP/1.1 200 OK 200是HTTP状态码, 代表请求已成功. (查httpservletres ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...
- iOS 批量上传图片的 3 种方法
AFNetworking 在去年年底升级到了 3.0.这个版本更新想必有很多好处,然而让我吃惊的是,它并没有 batch request 接口.之前的 1.x 版本.2.x 版本都实现了这个很常见的需 ...
- JS数据类型判断的几种方法
JS数据类型判断 JavaScript 中常见数据类型有Number.String.Boolean.Object.Array.Json.Function.Date.RegExp.Error.undef ...
随机推荐
- .Net Core+Vue.js模块化前后端分离快速开发框架NetModular更新日志(2019-12-08)
源码 GitHub:https://github.com/iamoldli/NetModular 码云:https://gitee.com/laoli/NetModular 欢迎star~ 文档 ht ...
- react之高阶组件(一)
当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...
- lerna式升级
有段时间没更新博客了,是时候更新一波了. 之前不是vue-next出了吗,然后就去学习了一下,发现整个目录不是那么熟悉了,变成这样了: 于是就这个线索去研究了一下,发下这是用的 lerna + yar ...
- 曹工杂谈:Spring boot应用,自己动手用Netty替换底层Tomcat容器
前言 问:标题说的什么意思? 答:简单说,一个spring boot应用(我这里,版本升到2.1.7.Release了,没什么问题),默认使用了tomcat作为底层容器来接收和处理连接. 我这里,在依 ...
- GROUP_CONCAT在组合商品中的使用
表:combined_product_item -------------------------pid sku quality-------------------------1 sku1 11 s ...
- BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8172 Solved: 4470[Submit][Sta ...
- LNMP架构的搭建
第9章 LNMP架构的搭建 9.1 什么是LNMP 9.1.1 LNMP的组成 L linux N nginx:实现静态的服务处理 M ...
- Proxmox VE虚拟化管理平台-相关概念
请阅读此文用户务必阅读以下链接,其中包含了汉化作者.张自然copy过来的原因等信息. www.zhangziran.com/proxmox-docs-zh-cn.htm a Proxmox VE 集群 ...
- PyCharm配置Gitee
PyCharm配置Gitee 第一步:下载安装Git https://git-scm.com/download/win 第二步:打开PyCharm,配置Git File->Setting-> ...
- js打乱数组排序
用到的知识点:Math.random()//用于打乱数组索引 random() 方法可返回介于 0(包含) ~ 1(不包含) 之间的一个随机数. var arr=[1,2,3,4,5,6]; for( ...