Python-身份证核对
中華人民共和國居民身份證號碼由17 位數字和1位校驗碼組成。其中,前6位為所在地編號,第7~14 位為出生年月日,第15~17位為登記流水號,其中第17位偶數為女性,奇數為男性。校驗碼的生成規則如下:
將前面的身份證號碼17位數分別乘以不同的系數。第1~17位的系數分別為: 7,9,10,5,8 4,2,1,6,3,7,9,10,5,8,4,2,將這17 位數字和系數相乘的結果相加,用相加的結果與11求模,余數結果只可能是0,1,2,3,4,5,6,7,8,9,10這11個數字,它們分別對應的最后一位身份證的號碼為1,0,x,9,8,7,6,5,4,3,2。例如,如果余數是2,最后一位數字就是羅馬數字x,如果余數是10,則身份證的最后一位就是2。
請設計程序實現輸入18位身份證號,辨別其真偽。若為真,則進一步判斷性別: 若不是18位或身份證號非法,則提示重新輸入。
提示:定義如下兩個元組,對輸入字符串進行遍歷。
factor=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
last=(“1”,“O”,“x”,“9”,“8”,“7”,“6”,“5”,“4”,“3”,“2”)
例如:某男性的身份證號碼是34052419800101001X。我們要看看這個身份證是不是合法的身份證。
首先:我們計算37+49+010+55+…+1*2,前17位的乘積和是189
然后:用189除以11得出的結果是商17余2
最后:通過對應規則就可以知道余數2對應的數字是x。所以,這是一個合格的身份證號碼。
效果如如下:
總結
以上是生活随笔為你收集整理的Python-身份证核对的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 痔疮要多少钱啊?
- 下一篇: Python---冒泡排序、选择排序