第7章 作业字符串综合处理
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第7章 作业字符串综合处理相关的知识,希望对你有一定的参考价值。
第7章作业字符串综合处理
从键盘输入一个18位身份证号,验证其正确性,如果错误,请重新输入。验证方面包括:1、位数须为18位;
#yangbocsu 2021.06.14 民主楼
isFalse = True
while isFalse:
ID = input("请输入18位身份证号:")
#1、位数须为18位;
length = len(ID) == 18
#2、前17位须为数字,第18位可以是数字及x或X;
isNum = ID[:17].isdigit() and (ID[-1].isdigit() or ID[-1]=="X" or ID[-1]=="x")
#3、首位不能为0;
headNotZero = int(ID[0]) != 0
#4、年份的范围在1900-2020;
year = int(ID[6:6+4])
yearJudge = year in range(1900,2020+1)
#5、月份的范围在01-12;
month = int(ID[10:10+2])
monthJudge = month in range(1,12+1)
#6、日的范围根据月份来判断
day = int(ID[12:12+2])
if month in [1,3,5,7,8,10,12] and day in range(1,31+1):
dayJudge = True
elif month in [4,6,9,11] and day in range(1,30+1):
dayJudge = True
else:
if (year%4 == 0 and year%100 != 0 or year%400==0 ) : #是闰年
if day == 29:
dayJudge = True
else:
dayJudge = False
else:
if day == 28:
dayJudge = True
else:
dayJudge = False
if length and isNum and headNotZero and yearJudge and monthJudge and dayJudge:
print(ID[6:6+8])
isFalse = False
#闰年满足条件: 1.能被4整除,但不能被100整除 2.能400整除 year%4 == 0 and year%100 != 0 or year%400==0
以上是关于第7章 作业字符串综合处理的主要内容,如果未能解决你的问题,请参考以下文章