五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Python實戰(zhàn)小項目之身份證信息校驗

發(fā)布日期:2021-12-22 12:41 | 文章來源:腳本之家

python小項目–身份證信息校驗

目的

制作個程序,輸入身份證號碼,輸出如下信息

性別 : 男
地區(qū) : 福建省龍巖市永定縣
出生年月日: 2000年05月01日
出生當(dāng)日派出所登記的第 1 個男孩
校驗碼: 0
身份證號真?zhèn)涡裕?真

所需文件與知識

  • 身份證區(qū)域代碼.xls(已上傳)
  • 身份證號碼組成
  • 身份證校驗碼算法

校驗碼算法

  • 18位身份證=17位信息數(shù)據(jù)+1位校驗碼
1到6位 7到14位 15到16位 17位 18位
區(qū)域代碼 出生年月日 登記所代碼 性別 校驗碼
  • 性別:男生為奇數(shù),女生為偶數(shù)

1表示第一個登記的男生
3表示第二個登記的男生
以此類推

校驗算法詳解

  • 1到17位 每位 乘以 對應(yīng)的權(quán)值 再求和
  • 將結(jié)果對11取余數(shù)
  • 根據(jù)余數(shù)找到對應(yīng)的校驗碼

每一位對應(yīng)的權(quán)值(17位信息數(shù)據(jù),從左往右,第一位對應(yīng)7,第二位對應(yīng)9,以此類推)

weights=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]

余數(shù)與校驗碼對應(yīng)字典(2對應(yīng)羅馬數(shù)字“X”–十)

verification_dict={0:1,
 1:0,
 2:"X",
 3:9,
 4:8,
 5:7,
 6:6,
 7:5,
 8:4,
 9:3,
 10:2}

完整代碼展示(你可以自己先做)

import pandas as pd
import numpy as np
data = pd.read_excel('身份證區(qū)域代碼完整版.xls')
# 讀取18位身份證
sfz=input()
# 對身份證信息切片
position=int(sfz[0:6])
birthday=sfz[6:14]
police_code=sfz[14:16]
sex_code=int(sfz[16])
verification=int(sfz[17])
# 獲取區(qū)域名字,如福建省龍巖市永定縣
position_name=data.iloc[data.loc[data['代碼'] == position].index[0]]['名稱']
# 確定性別,并確定是該登記所第幾個登記的
def sex(n):
 train_list=[]
 male_list=[1,3,5,7,9]
 female_list=[0,2,4,6,8]
 if n in male_list:
  train_list.append('男')
  train_list.append(male_list.index(n)+1)
 else:
  train_list.append('女')
  train_list.append(female_list.index(n)+1)
 return train_list
# 校驗算法
weights=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
sfz_code=[]
for item in sfz:
 sfz_code.append(int(item))
 
weights_sfz=[]
for i in sfz_code:
 for j in weights:
  weights_sfz.append(i*j)
# 找到余數(shù)
target=sum(weights_sfz)%11
verification_dict={0:1,
 1:0,
 2:"X",
 3:9,
 4:8,
 5:7,
 6:6,
 7:5,
 8:4,
 9:3,
 10:2}
# 找到余數(shù)對應(yīng)的第18位校驗碼
def verification_whether(target_n):
 return verification_dict[target_n]
# 看看輸入的身份證校驗碼和算出來的校驗碼是否一致,如果不一致,則是假身份證
def verification_true_false(sfz_verification,target_n_whether):
 if sfz_verification == target_n_whether:
  return "真"
 else:
  return "假"
# 將結(jié)果格式化打印出來
print("性別  :",sex(sex_code)[0])
print("地區(qū)  :",position_name)
print("出生年月日: {}年{}月{}日".format(birthday[0:4],birthday[4:6],birthday[6:8]))
print("出生當(dāng)日派出所登記的第 {} 個{}孩".format(sex(sex_code)[1],sex(sex_code)[0]))
print("校驗碼:",verification)
print("身份證號真?zhèn)涡裕?,verification_true_false(verification,verification_whether(target)))

才疏學(xué)淺,代碼諸多不足,歡迎交流學(xué)習(xí)!
Jay Kwong

到此這篇關(guān)于Python實戰(zhàn)小項目之身份證信息校驗的文章就介紹到這了,更多相關(guān)Python 身份證校驗內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部