利用正则表达式实现对身份证合法程度的判断

 1 # !usr/bin/env python3
2 # coding:utf-8
3 """
4 @ Copyright (c)2020,高铁学院学生
5 @ All rightsreserved
6 @ Author: LingluSenior
7 @ Blog(个人学习网): xlcybk.github.io
8 @ WeChat Official Account(微信公众号): LingluSenior
9
10 @ File: idcard_legal.py
11 @ Time: 2020/5/28 10:48
12
13 @Motto: 不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
14 """
15 import re
16 while(True):
17 id_card = input("请输入身份证号码:")
18 key = "^[1-9]{2}\d{4}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$"
19 brea = re.match(key,id_card)
20 if brea != None :
21 print(brea.group())
22 print("你的身份证号码为:" + brea.group())
23 year = int(id_card[6:10]) # 截取年份
24 month = int(id_card[10:12]) # 截取月份
25 day = int(id_card[12:14]) # 截取日期
26 sex = int(id_card[16]) #截取性别奇数为男反之为女
27 print("你的出生年日期为:%s" % year, month, day)
28 if sex % 2 == 0:
29 print("该身份证号码的持证人为女性")
30 else:
31 print("该身份证号码的持证人为男性")
32
33 print("=" * 30)
34 break
35 else :
36 print("匹配失败,请重新输入")

Python判断身份证是否合法的更多相关文章

  1. lintcode:Valid Sudoku 判断数独是否合法

    题目: 判断数独是否合法 请判定一个数独是否有效.该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 样例 下列就是一个合法数独的样例. 注意 一个合法的数独(仅部分填充)并不一定是可解的.我们 ...

  2. 使用 python 进行身份证号校验

    使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...

  3. LintCode389.判断数独是否合法

    LintCode简单题:判断数独是否合法 问题描述: 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项: 一个合法的数独(仅部分填充)并不一定是可解的.我们 ...

  4. python判断字符串

    python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...

  5. YTU 3001: 判断操作是否合法(栈和队列)

    3001: 判断操作是否合法(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 4  解决: 2 题目描述 假设以I和O分别表示进栈和出栈操作,栈的初态和终态均为空,进栈和出栈的 ...

  6. 【Python备忘】python判断文件和文件夹是否存在

    python判断文件和文件夹是否存在 import os os.path.isfile('test.txt') #如果不存在就返回False os.path.exists(directory) #如果 ...

  7. python 判断连个 Path 是否是相同的文件夹

    python 判断连个 Path 是否是相同的文件夹 import os os.path.normcase(p1) == os.path.normcase(p2) normcase() 在 windo ...

  8. Python判断列表是否已排序的各种方法及其性能分析

    目录 Python判断列表是否已排序的各种方法及其性能分析 声明 一. 问题提出 二. 代码实现 2.1 guess 2.2 sorted 2.3 for-loop 2.4 all 2.5 numpy ...

  9. juqery 判断所有input 不能为空 判断只能为数字 判断身份证号:18位和15位 判断是否银行卡号

    //jq 判断某字符串是否含有特殊符号 function CheckNum() { //定义数组保存特殊字符 var AllNumIsSame = new Array("’", & ...

随机推荐

  1. JetBrains系列IDE无法输入中文

    1 问题描述 环境Linux+fcitx,JetBrains的IDE无法输入中文,包括IDEA,PyCharm,WebStorm,CLion等等. 2 解决方案 Linux下一般使用fcitx进入中文 ...

  2. Run Horovod

    Run Horovod https://horovod.readthedocs.io/en/stable/running_include.html https://horovod.readthedoc ...

  3. .Net下引用多目标框架项目导致XAML无法识别类型的问题

    背景 我的项目(以下称为LibA)中有一个多目标框架编译的项目,即项目文件包含如下代码: <PropertyGroup> ... <TargetFrameworks>netco ...

  4. 带你温习一下webpack配置

    前言 你知道node.webpack和npm之间的关系吗? 首先来介绍一下node.webpack和npm的有什么样的关系. 我们知道webpack是对我们所开发的html.css.js等模块化开发的 ...

  5. git平时用到的仓库

    github茫茫仓库 若水三千,取一瓢饮 doocs/technical-books doocs/leetcode lepture/editor pandao/editor.md 未完..待续!!积累 ...

  6. 逆向工程第001篇:解锁FIFA07传奇模式

    FIFA07传奇难度的解锁,可以说是所有FIFA07玩家的终极目标.但是如果想以正常方式对其进行解锁,绝对是一件耗时耗力的工作.所以在这里我打算通过分析游戏存档文件的十六进制代码的方式,一步一步地找到 ...

  7. sqlserver2018 报错恢复

    报错: Description: SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0xb2b1af16,但实际为: 0xac9393a2).在文件 'C:\Progr ...

  8. hdu4920 矩阵乘法%3

    题意:      给你两个矩阵,让你求两矩阵的乘积,然后3取余.矩阵是n*n的,n<=800 思路:        如果什么都不考虑的话,矩阵的乘法是o(n^3)的,800*800*800 = ...

  9. CVE-2012-0158:Microsoft Office MSCOMCTL.ocx 栈溢出漏洞调试分析

    0x01 Lotus Blossom 行动 在 2015 年 6 月,国外安全厂商 Palo Alto Networks 的威胁情报团队 Unit42 发现了一起针对东南亚政府的一次间谍行为,试图获取 ...

  10. 一文详解MySQL如何同时自增自减多个字段

    本文将带大家聊一下如何同时自增自减多个字段 开始之前,先分享一套MySQL教程,小白入门或者学习巩固都可以看 MySQL基础入门-mysql教程-数据库实战(MySQL基础+MySQL高级+MySQL ...