python判断正整数是几位数_Python:给定一个不超过5位的正整数,判断有几位

方法一:作比较

[[email protected] markPy]# cat five.py

#!/usr/bin/python3

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

方法三:

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)

欢迎补充~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值