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

【作品介绍】
身份证求校验码程序输入身份证号码的前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