Python实现身份证校验功能
2013-08-03 17:00 楼台别 阅读(1648) 评论(0) 收藏 举报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
浙公网安备 33010602011771号