欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用Python完成15位18位身份證的互轉(zhuǎn)功能-創(chuàng)新互聯(lián)

這篇文章主要介紹如何使用Python完成15位18位身份證的互轉(zhuǎn)功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁(yè)制作,對(duì)廣告推廣等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)成都網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

身份證號(hào)碼的構(gòu)成

既然談到了身份證轉(zhuǎn)換,那就需要先了解下證件號(hào)碼的構(gòu)成。

如何使用Python完成15位18位身份證的互轉(zhuǎn)功能 

公民身份號(hào)碼是特征組合碼,由 十七位數(shù)字本體碼 和 一位數(shù)字校驗(yàn)碼 組成;

排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。

六位數(shù)字地址碼:表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T 2260 的規(guī)定執(zhí)行。

八位數(shù)字出生日期碼:表示編碼對(duì)象出生的年、月、日,按 GB/T 7408 的規(guī)定執(zhí)行。年、月、日代碼之間不用分隔符。某人出生日期為 1995年08月12日,其出生日期碼為 19950812。

三位順序碼:表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、同月、同日出生的人編定的順序號(hào),順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。

一位校驗(yàn)碼:校驗(yàn)碼按照 ISO 7064:1983.MOD 11-2校驗(yàn)碼計(jì)算出來(lái)的檢驗(yàn)碼。

校驗(yàn)碼計(jì)算方法

1、將前面的身份證號(hào)碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;

3、用加出來(lái)和除以11,看余數(shù)是多少;

4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個(gè)數(shù)字。其分別對(duì)應(yīng)的最后一位身份證的號(hào)碼為 1 0 X 9 8 7 6 5 4 3 2 ;

5、通過(guò)上面得知如果余數(shù)是2,就會(huì)在身份證的第18位數(shù)字上出現(xiàn)羅馬數(shù)字的X。

解決思路

15位轉(zhuǎn)18位:即身份證號(hào)碼的前六位數(shù)字+  '19' +  身份證第六位以后的數(shù)字 +  校驗(yàn)碼

(不要問(wèn)我為什么加19這種白癡(´⊙ω⊙`) @?¥&?的問(wèn)題,當(dāng)然是因?yàn)橹挥?9世紀(jì)的人才可能擁有15位的身份證號(hào)啦)

校驗(yàn)碼計(jì)算方法就更簡(jiǎn)單了,將這17位數(shù)字和系數(shù)相乘的結(jié)果相加除以11匹配余數(shù)對(duì)應(yīng)的號(hào)碼即可。

注意:代碼中我用了幾個(gè)變量,在這里拆解講解下。

Ai: 表示第i位置上的身份證號(hào)碼數(shù)字值 Wi: 表示第i位置上的加權(quán)因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

十七位數(shù)字本體碼加權(quán)求和公式: S = Sum(AiWi), i = 0, … , 16 ,先對(duì)前17位數(shù)字的權(quán)求和

計(jì)算模 Y = mod(S, 11)

通過(guò)模得到對(duì)應(yīng)的校驗(yàn)碼

    Y: 0 1 2 3 4 5 6 7 8 9 10

校驗(yàn)碼: 1 0 X 9 8 7 6 5 4 3 2

OK,分析的差不多了,直接看代碼。

怎么用代碼實(shí)現(xiàn)?

# encoding: utf-8
"""
CREATED ON 19-11-05
@AUTHOR: XUSL
"""
WI = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1, ]
VI = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, ]
DEF GET_VERITY(EIGHTEEN_CARD):
  """
  :PARAM EIGHTEEN_CARD:
  :RETURN:
  """
  AI = []
  REMAINING = ''
  IF LEN(EIGHTEEN_CARD) == 18:
    EIGHTEEN_CARD = EIGHTEEN_CARD[0:-1]
  IF LEN(EIGHTEEN_CARD) == 17:
    S = 0
    FOR I IN EIGHTEEN_CARD:
      AI.APPEND(INT(I))
    FOR I IN RANGE(17):
      S = S + WI[I] * AI[I]
    REMAINING = S % 11
  RETURN 'X' IF REMAINING == 2 ELSE STR(VI[REMAINING])
DEF UP_TO_EIGHTEEN(FIFTEEN_CARD):
  """
  15位轉(zhuǎn)18位
  :PARAM FIFTEEN_CARD:
  :RETURN:
  """
  EIGHTEEN_CARD = FIFTEEN_CARD[0:6] + '19' + FIFTEEN_CARD[6:15]
  RETURN EIGHTEEN_CARD + GET_VERITY(EIGHTEEN_CARD)
DEF DOWN_TO_FIFTEEN(EIGHTEEN_CARD):
  """
  18位轉(zhuǎn)15位
  :PARAM EIGHTEEN_CARD:
  :RETURN:
  """
  RETURN EIGHTEEN_CARD[0:6] + EIGHTEEN_CARD[8:17]
IF __NAME__ == '__MAIN__':
  # 15位轉(zhuǎn)18位
  CARD_1 = UP_TO_EIGHTEEN('632123820927051')
  PRINT(CARD_1)
  # 18位轉(zhuǎn)15位
  CARD_2 = DOWN_TO_FIFTEEN('410125199908222000')
  PRINT(CARD_2)

當(dāng)然,這只是個(gè)小功能,主要還是想分享下代碼,如果有同樣的處理可以直接用。

以上是“如何使用Python完成15位18位身份證的互轉(zhuǎn)功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文題目:如何使用Python完成15位18位身份證的互轉(zhuǎn)功能-創(chuàng)新互聯(lián)
本文來(lái)源:http://chinadenli.net/article8/dgjjop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管