1031 查验身份证 (15 分) python
生活随笔
收集整理的這篇文章主要介紹了
1031 查验身份证 (15 分) python
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一個(gè)合法的身份證號(hào)碼由17位地區(qū)、日期編號(hào)和順序編號(hào)加1位校驗(yàn)碼組成。校驗(yàn)碼的計(jì)算規(guī)則如下:
首先對(duì)前17位數(shù)字加權(quán)求和,權(quán)重分配為:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后將計(jì)算的和對(duì)11取模得到值Z;最后按照以下關(guān)系對(duì)應(yīng)Z值與校驗(yàn)碼M的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
ps:有點(diǎn)繁瑣
import functools l1=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] l2=['1','0','X','9','8','7','6','5','4','3','2'] a=int(input()) ll=[]; for i in range(a):*s,p=input()if(not "".join(s).isdigit() or l2[functools.reduce(lambda acc,x:acc+x[0]*int(x[1]),zip(l1,s),0)%11]!=p): ll.append("".join(s)+p) print("All passed" if not len(ll) else "\n".join(ll))總結(jié)
以上是生活随笔為你收集整理的1031 查验身份证 (15 分) python的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《软技能》读书笔记——职业篇
- 下一篇: web ui 套件_复古UI套件