Python 身份證核對

2021-10-04 08:00:49 字數 1116 閱讀 1966

id_card=

input

('請輸入身份證號碼:'

)#存放身份證

jy = id_card[

len(id_card)-1

:len

(id_card)

]#該位是最後一位用於最後的比較

iflen

(id_card)

==18

:#當你輸入身份證的時候必須是18位

x=(7

,9,10

,5,8

,4,2

,1,6

,3,7

,9,10

,5,8

,4,2

)#使用乙個元組存放第1~17位的係數

s=0#將這17位數字和係數相乘的結果相加,用s存放相加的結果

for i in

range(1

,len

(id_card)):

e = id_card[i-

1:i]

#e依次為身份證的位數

s = s +

int(e)

*x[i-1]

#這17位數字和係數相乘的結果相加,存放到s中

b = s%

11#相加的結果與11求模

y=("1"

,"o"

,"x"

,"9"

,"8"

,"7"

,"6"

,"5"

,"4"

,"3"

,"2"

)#存放這些數對應的最後一位身份證的號碼

c = y[b]

#將所得的最後以為身份證號碼賦值給c

if jy == c:

#最後所得的身份證號碼與實際輸入的身份證的最後一位進行對比比較

print

('經計算校驗碼為'

,c,'和實際相同,身份證合法!'

)else

:print

('經計算校驗碼為'

,c,'和實際不同,身份證不合法!'

)else

:#不是18為結束並提示使用者

print

('身份證位數不對'

)

python身份證校驗

驗證規則如下 長度必須為18位 格式為 前17位是數字,最後一位是數字或者x 不區分大小寫 前6位是地區碼,必須存在 第7位到12位是出生日期,必須是存在的日期 最後一位是驗證位,規則必須匹配 輸入為乙個身份證號的字串 輸出為乙個tuple 0 是否是身份證 1 錯誤資訊或者所屬地區 import ...

python驗證身份證

def get checkcode id 計算身份證號碼的校驗位 param id number str string 身份證號的前17位,比如 3201241987010100 returns 返回型別 tuple flag bool 如果身份證號格式正確,返回 true 格式錯誤,返回 fals...

身份證分組(Python實現)

18位身份證的編碼規則是 前1 2位數字表示 所在省 直轄市 自治區 的 第3 4位數字表示 所在地級市 自治州 的 第5 6位數字表示 所在區 縣 自治縣 縣級市 的 第7 14位數字表示 出生年 月 日 第15 16位數字表示 所在地的派出所的 第17位數字表示性別 奇數表示男性,偶數表示女性 ...