猫史档案馆


【Python作品分享】身份证求校验码

用户:凌浩然tzXC凌浩然tzXC查看:3 回复:1 评论:3 创建时间:2023-02-28T18:00:14


【作品展示】

center_image

 

【作品介绍】

身份证求校验码程序

输入身份证号码的前17位,然后第1~17位的系数分别位7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,再把它们加起来,得出的数字被11除的余数只有可能余0~10。

余数0对应1,余数1对应0,余数2对应X,余数3对应9,余数4对应8,余数5对应7,余数6对应6,余数7对应5,余数8对应4,余数9对应3,余数10对应2。

 

【作品源代码】

# 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
总和 = 0
sfz = input('请输入17位身份证号:')
if (len(sfz) == 17):
    总和 = (总和 + int(sfz[0]) * 7)
    总和 = (总和 + int(sfz[1]) * 9)
    总和 = (总和 + int(sfz[2]) * 10)
    总和 = (总和 + int(sfz[3]) * 5)
    总和 = (总和 + int(sfz[4]) * 8)
    总和 = (总和 + int(sfz[5]) * 4)
    总和 = (总和 + int(sfz[6]) * 2)
    总和 = (总和 + int(sfz[7]) * 1)
    总和 = (总和 + int(sfz[8]) * 6)
    总和 = (总和 + int(sfz[9]) * 3)
    总和 = (总和 + int(sfz[10]) * 7)
    总和 = (总和 + int(sfz[11]) * 9)
    总和 = (总和 + int(sfz[12]) * 10)
    总和 = (总和 + int(sfz[13]) * 5)
    总和 = (总和 + int(sfz[14]) * 8)
    总和 = (总和 + int(sfz[15]) * 4)
    总和 = (总和 + int(sfz[16]) * 2)
    余数 = (总和 % 11)
    校验码 = ((12 - 余数) % 11)
    if (校验码 == 10):
        校验码 = 'X'
    else:
        校验码 = str(校验码)
else:
    print('请重新输入身份证号!')
print('身份证号前17位是', sfz, ',校验码是', 校验码, ',完整的身份证是', sfz,校验码)

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
oWuGi7s6oWuGi7s6

《中文变量》

点赞0


评论