最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月20日 14:24:44   作者:同心圓計算  
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python做一個身份證信息校驗的小項目,大家可以在過程中查缺補漏,提升水平

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

目的

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

性別 : 男
地區(qū) : 福建省龍巖市永定縣
出生年月日: 2000年05月01日
出生當日派出所登記的第 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("出生當日派出所登記的第 {} 個{}孩".format(sex(sex_code)[1],sex(sex_code)[0]))
print("校驗碼:",verification)
print("身份證號真?zhèn)涡裕?,verification_true_false(verification,verification_whether(target)))

才疏學淺,代碼諸多不足,歡迎交流學習!
Jay Kwong

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

相關(guān)文章

  • Python網(wǎng)絡(luò)爬蟲技術(shù)高階用法

    Python網(wǎng)絡(luò)爬蟲技術(shù)高階用法

    網(wǎng)絡(luò)爬蟲成為了自動化數(shù)據(jù)抓取的核心工具,Python?擁有強大的第三方庫支持,在網(wǎng)絡(luò)爬蟲領(lǐng)域的應(yīng)用尤為廣泛,本文將深入探討?Python?網(wǎng)絡(luò)爬蟲的高階用法,包括處理反爬蟲機制、動態(tài)網(wǎng)頁抓取、分布式爬蟲以及并發(fā)和異步爬蟲等技術(shù),幫助讀者掌握高級Python爬蟲技術(shù)
    2024-12-12
  • Python創(chuàng)建臨時文件和文件夾

    Python創(chuàng)建臨時文件和文件夾

    這篇文章主要介紹了Python如何創(chuàng)建臨時文件和文件夾,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • Python?包管理器pip入門教程

    Python?包管理器pip入門教程

    這篇文章主要為大家介紹了Python?pip包管理器入門教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • python模塊導(dǎo)入的細節(jié)詳解

    python模塊導(dǎo)入的細節(jié)詳解

    這篇文章主要給大家介紹了關(guān)于python模塊導(dǎo)入細節(jié)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • python中join()方法介紹

    python中join()方法介紹

    Python join() 方法用于將序列中的元素以指定的字符連接生成一個新的字符串。這篇文章主要介紹了python中join()方法,需要的朋友可以參考下
    2018-10-10
  • python實現(xiàn)Zabbix-API監(jiān)控

    python實現(xiàn)Zabbix-API監(jiān)控

    這篇文章主要為大家詳細介紹了python實現(xiàn)Zabbix-API監(jiān)控,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python獲取某一進程的CPU利用率的方法詳解

    Python獲取某一進程的CPU利用率的方法詳解

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)獲取某一進程的CPU利用率,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • python?Tkinter實例詳解

    python?Tkinter實例詳解

    tkinter(Tk?interface)是Python的標準GUl庫,支持跨平臺的GUl程序開發(fā)。tkinter適合小型的GUl程序編寫,也特別適合初學者學習GUl編程,這篇文章主要介紹了python?Tkinter詳解,需要的朋友可以參考下
    2023-03-03
  • python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作)

    python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作)

    這篇文章主要介紹了python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作),具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python 文本單詞提取和詞頻統(tǒng)計的實例

    python 文本單詞提取和詞頻統(tǒng)計的實例

    今天小編就為大家分享一篇python 文本單詞提取和詞頻統(tǒng)計的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論

津南区| 乐陵市| 松原市| 文登市| 郴州市| 攀枝花市| 颍上县| 澄迈县| 大埔县| 河北省| 兰州市| 博罗县| 安吉县| 泽州县| 永昌县| 昌乐县| 怀仁县| 左贡县| 甘肃省| 成武县| 兖州市| 政和县| 建始县| 阿拉善右旗| 拜泉县| 前郭尔| 定兴县| 武功县| 洪雅县| 安平县| 旺苍县| 成安县| 夏津县| 措勤县| 新邵县| 体育| 麦盖提县| 汝阳县| 黔西县| 武夷山市| 锦州市|