这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/107440627
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!
写在开头的话
- 请记住:实践是掌握知识的最快方法
- 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
- 生命不息,折腾不止!
判断数字位数
题目
- 数字必须小于等于5位数
- 输入的数必须为数字,输入不正确则报错
- 对输入的数字,给出其位数
解析
方法一
- 分析
-
首先利用
input
获取用户输入 -
利用
isdigit
:判断用户输入是否合法 -
利用
len
:判断用户输入数字大小是否超过5位数 -
如果用户输入
0002
,将其当作
2
处理
- 源码
import re
a = input("please input your num\n")
a = re.sub("^0*","",a) #如果字符前面出现了0,则将0剔除
if a.isdigit() == False:
print("您的输入中含有非法字符串,请输入数字,不要含有别的非法字符")
exit(-1)
if len(a) > 5:
print("您输入的数字大于五位数,请输入一个小于5位数字的数")
exit(0)
print("您输入的数字的位数为%d"%len(a))
- 运行结果1
please input your num
sdfs
您的输入中含有非法字符串,请输入数字,不要含有别的字符
- 运行结果2
please input your num
1290345
您输入的数字大于五位数,请输入一个小于5位数字的数
- 运行结果3
please input your num
12563
您输入的数字的位数为5
方法二
- 分析
-
利用
input()
,获取键盘输入 -
将其转化为
int
-
利用
try
、
except
,捕捉用户输入是否合法 -
用得到的数整除以
10000
,看其得到的数是否大于
9
,如果大于
9
的话,则提示用户输入的数大于5位数
- 源码
def judgebit():
print("------------------------")
try:
num=int(input("input your num\n"))
except ValueError:
print("你输的数字中含有非法字符,程序退出")
exit(-1)
testnum = 10000
bitnum = 5
if((num // testnum)>9):
print("您输入的位数大于5位,请重新输入")
else:
if( num == 0 ):
print("数字位数为1位")
else:
while((num//testnum) == 0): #依次判断
bitnum -= 1
testnum /= 10
print("输入的数位数为",bitnum,"位")
if __name__ == '__main__':
judgebit()
- 运行结果1
------------------------
input your num
123
输入的数位数为 3 位
- 运行结果2
------------------------
input your num
1200000
您输入的位数大于5位,请重新输入
- 运行结果3
------------------------
input your num
00000000000000002
输入的数位数为 1 位
- 运行结果4
------------------------
input your num
asdasdasd
你输的数字中含有非法字符,程序退出
写在最后的话:
- 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
-
欢迎关注我的CSDN博客,
IDYS’BLOG
-
持续更新内容
:
linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算
- 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
- 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!
版权声明:本文为weixin_41633902原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。