您的位置:首页 > 编程语言 > Python开发

Python实现身份证校验功能

2013-08-03 17:00 337 查看
Python实现身份证校验功能,一个身份证的校验程序,现在只能查 18 位的具体代码如下:
# -*- coding: cp936 -*-

while True:

id_card=raw_input('请输入身份证号码:')
print ''
jy = str(id_card[len(id_card)-1:len(id_card)])
if len(id_card) == 18 :

x_arr = {'1': '7',
'2': '9',
'3': '10',
'4': '5',
'5': '8',
'6': '4',
'7': '2',
'8': '1',
'9': '6',
'10': '3',
'11': '7',
'12': '9',
'13': '10',
'14': '5',
'15': '8',
'16': '4',
'17': '2'}
a=0
for i in range(1,len(id_card),1):
e = id_card[i-1:i]
a = a + int(e)*int(x_arr.get(str(i)))
b = str(a%11)

y_arr = {'0': '1',
'1': '0',
'2': 'x',
'3': '9',
'4': '8',
'5': '7',
'6': '6',
'7': '6',
'8': '4',
'9': '3',
'10': '2'}
c = str(y_arr.get(b))

if jy == c:
print '经计算校验码为',c,'和实际相同'
else:
print '经计算校验码为',c,'和实际不同'

elif id_card == 'quit':
break
else:
print '身份证位数不对'

print ''

raw_input('按回车键键结束') 转载请注明诚信在线开户http://www.wind-fixasia.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: