import re

#Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!','身份证地区非法!']

def checkIdcard(idcard):

Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!','身份证地区非法!']

area={"11":"北京","12":"天津","13":"河北","14":"山西","15":"内蒙古","21":"辽宁","22":"吉林","23":"黑龙江","31":"上海","32":"江苏","33":"浙江","34":"安徽","35":"福建","36":"江西","37":"山东","41":"河南","42":"湖北","43":"湖南","44":"广东","45":"广西","46":"海南","50":"重庆","51":"四川","52":"贵州","53":"云南","54":"西藏","61":"陕西","62":"甘肃","63":"青海","64":"宁夏","65":"新疆","71":"台湾","81":"香港","82":"澳门","91":"国外"}

idcard=str(idcard)

idcard=idcard.strip()

idcard_list=list(idcard)

#地区校验

if(notarea[(idcard)[0:2]]):

print Errors[4]

#15位身份号码检测

if(len(idcard)==15):

if((int(idcard[6:8])+1900) % 4 == 0 or((int(idcard[6:8])+1900) %100 == 0 and (int(idcard[6:8])+1900) % 4 == 0 )):

erg=re.compile('[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[/hide])#//测试出生日期的合法性

else:

ereg=re.compile('[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[/hide])#//测试出生日期的合法性

if(re.match(ereg,idcard)):

print Errors[0]

else:

print Errors[2]

#18位身份号码检测

elif(len(idcard)==18):

#出生日期的合法性检查

#闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))

#平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))

if(int(idcard[6:10]) % 4 == 0 or (int(idcard[6:10]) % 100 == 0 andint(idcard[6:10])%4 == 0 )):

ereg=re.compile('[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx][/hide])#//闰年出生日期的合法性正则表达式

else:

ereg=re.compile('[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx][/hide])#//平年出生日期的合法性正则表达式

#//测试出生日期的合法性

if(re.match(ereg,idcard)):

#//计算校验位

S = (int(idcard_list[0]) + int(idcard_list[10])) * 7 +(int(idcard_list[1]) + int(idcard_list[11])) * 9 +(int(idcard_list[2]) + int(idcard_list[12])) * 10 +(int(idcard_list[3]) + int(idcard_list[13])) * 5 +(int(idcard_list[4]) + int(idcard_list[14])) * 8 +(int(idcard_list[5]) + int(idcard_list[15])) * 4 +(int(idcard_list[6]) + int(idcard_list[16])) * 2 +int(idcard_list[7]) * 1 + int(idcard_list[8]) * 6 +int(idcard_list[9]) * 3

Y = S % 11

M = "F"

JYM = "10X98765432"

M = JYM[Y]#判断校验位

if(M == idcard_list[17]):#检测ID的校验位

print Errors[0]

else:

print Errors[3]

else:

print Errors[2]

else:

print Errors[1]

python导入txt文件并绘图-Python读取txt数据文件,并作图相关推荐

  1. matlab支持的文件类型,MATLAB可以读取的数据文件类型有()

    在万方中检索脑瘫(脑性瘫痪)患儿的康复的循证医学一级证据,最合适的检索表达式是(). 合成塔目标若是高产则可维持惰性气体含量():目标若是低耗(耗气),则可维持惰性气体含量(). 若轴所受的外力频率与 ...

  2. 利用Python读取外部数据文件

    不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数据可 ...

  3. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  4. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中

    MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...

  5. pandas玩转excel-> (2)如何利用pandas读取excel数据文件

    pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...

  6. Matlab读取二进制数据文件

    第一步:函数fopen打开文件 fid=fopen('文件名',读取方式) fid:句柄值 小于0表示打开失败:大于0表示打开成功 文件名:字符串,使用单引号(本文例子'savedata.dat') ...

  7. Java 实现日志文件监听并读取相关数据

    Java 实现日志文件监听并读取相关数据 项目需求 由于所在数据中台项目组需要实现监听文件夹或者日志文件并读取对应格式的脏数据的需求,以便在文件.文件夹发生变化时进行相应的业务流程:所以在这里记录下相 ...

  8. oracle数据文件编号,oracle中表空间与数据文件编号的连续性

    ORACLE中表空间编号与数据文件编号都是连续的,不会断号.如果TS$中表空间出现了断号, oracle在启动时会进行数据字典和控制文件的校验,发现不一致时,数据库不能正常启动. 表空间被删除时ts$ ...

  9. python导入txt文件并绘图-Python读取txt某几列绘图的方法

    晚上帮同学用Python脚本绘图,大概需求是读取一个txt文件的两列分别作为x和y的值,绘图即可,代码如下: #coding:utf-8 import numpy as np import matpl ...

  10. python导入txt文件并绘图-Python实现读取txt文件中的数据并绘制出图形操作示例

    本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...

最新文章

  1. 如何解决移动端键盘弹起将底部导航栏顶起
  2. 是否要运行此应用程序_使用Delve调试Go应用程序
  3. Python编程基础10:列表
  4. 重新打包版Inno Setup 5.4.3
  5. 伺服扭矩模式怎么控制_气液增压缸是怎么增压的?气液增压缸好用吗?气液增压缸的原理及其伺服控制...
  6. IT忍者神龟之Java动态代理与CGLib代理
  7. 【机器视觉】线阵相机模型说明以及使用HALCON标定助手对线阵相机进行标定
  8. 2022鹏城杯CTF---Crypto wp
  9. MAC - macbook Ctrl键失灵的解决办法
  10. vue图片裁剪插件:vue-img-cutter
  11. 洛谷 P1564 膜拜 题解
  12. Java线程中yield与join方法的区别
  13. 一起来学Kotlin:概念:7. Kotlin 函数介绍:扩展函数,中缀函数,运算符函数,带有varrag输入的函数
  14. 分子动力学模拟之SETTLE约束算法
  15. vue项目中如何设置ico图标
  16. springboot 分组校验和顺序校验
  17. Element Select选择器从服务器搜索数据,输入关键字进行查找(从服务器获得的数据有分页)
  18. 社保二季度亲自加仓三股遭套
  19. 微信回应转错帐被拉黑事件 支付宝:我们比较蠢 没法那么洒脱
  20. 中产与“伪中产”的对决:正面刚星巴克,Luckin果真很 Luck

热门文章

  1. JSEnhancements.vsix
  2. SpringBoot整合RabbitMQ-整合演示
  3. 玩转python字体
  4. 1.CentOS安装Redis
  5. 苹果新的编程语言 Swift 语言进阶(十三)--类型检查与类型嵌套
  6. [Usaco2006 Nov]Roadblocks第二短路
  7. ASP.NET MVC Music Store教程(1):概述和新项目
  8. SQL Server 表分区注意事项(转载)
  9. python下载文件到指定文件夹-python实现指定文件夹下的指定文件移动到指定位置...
  10. python做excel自动化可视化-简直出神入化,教你用Python控制Excel实现自动化办公...