第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章 作业字符串综合处理的主要内容,如果未能解决你的问题,请参考以下文章

第2章 Python基础-字符编码&数据类型 综合 练习题

高项:2016年3月7日作业(第1章第2章)

3.16第4次作业,第6章与第7章

数据库第7章作业——数据库设计

第7-9章作业

第7-9章作业