• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無以明志,非寧靜無以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            Python 校驗(yàn)身份證及提取身份證中的有效信息

            一、驗(yàn)證:

            1. 校驗(yàn)身份證長度:身份證號碼一般為18位,其中最后一位可能是字母X(用于表示10),其他17位為數(shù)字。
            2. 校驗(yàn)身份證前17位是否為數(shù)字:可以使用正則表達(dá)式進(jìn)行匹配,判斷前17位是否全部為數(shù)字。
            3. 校驗(yàn)身份證的地區(qū)碼:身份證的前6位是地區(qū)碼,可以通過查詢相關(guān)地區(qū)碼表進(jìn)行校驗(yàn)。
            4. 校驗(yàn)身份證的出生日期:身份證的第7位到第14位是出生日期,根據(jù)年份、月份和日期進(jìn)行簡單的校驗(yàn),判斷是否符合日期規(guī)則。
            5. 校驗(yàn)身份證的最后一位校驗(yàn)碼:身份證的最后一位是校驗(yàn)碼,用于校驗(yàn)前17位是否合法。校驗(yàn)碼的計(jì)算方法是通過前17位的權(quán)重和校驗(yàn)碼進(jìn)行計(jì)算,計(jì)算公式如下:
            將身份證前17位的每一位乘以對應(yīng)的權(quán)重值(分別為7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2);
            將得到的結(jié)果相加,并對11取模得到一個余數(shù);將這個余數(shù)與校驗(yàn)碼進(jìn)行比較,如果相等,則身份證號碼合法


            二、提取信息
            1. 提取性別信息:身份證的倒數(shù)第二位是性別標(biāo)識,奇數(shù)代表男性,偶數(shù)代表女性。
            2. 提取出生日期:身份證的第7位到第14位是出生日期,可以直接提取出來。
            3. 提取地區(qū)信息:身份證的前6位是地區(qū)碼,可以通過查詢相關(guān)地區(qū)碼表獲取對應(yīng)的地區(qū)信息。


            三、python代碼

             1 import re
             2 def validate_id_card(id_card):
             3     # 校驗(yàn)身份證長度
             4     if len(id_card) != 18:
             5         return False
             6     # 校驗(yàn)身份證前17位是否為數(shù)字
             7     if not re.match(r'^\d{17}(\d|X|x)$', id_card):
             8         return False
             9     # 校驗(yàn)身份證地區(qū)碼
            10     area_code = id_card[:6]
            11     # TODO: 根據(jù)地區(qū)碼表進(jìn)行校驗(yàn)
            12     # 校驗(yàn)身份證出生日期
            13     birth_date = id_card[6:14]
            14     year = int(birth_date[:4])
            15     month = int(birth_date[4:6])
            16     day = int(birth_date[6:])
            17     # TODO: 根據(jù)年份、月份和日期進(jìn)行校驗(yàn)
            18     # 校驗(yàn)身份證最后一位校驗(yàn)碼
            19     check_code = id_card[-1].upper()
            20     weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
            21     check_sum = sum(int(id_card[i]) * weights[i] for i in range(17)) % 11
            22     check_codes = ['1''0''X''9''8''7''6''5''4''3''2']
            23     if check_code != check_codes[check_sum]:
            24         return False
            25     return True
            26 def extract_id_card_info(id_card):
            27     gender_code = int(id_card[-2])
            28     gender = '' if gender_code % 2 == 1 else ''
            29     birth_date = id_card[6:14]
            30     year = birth_date[:4]
            31     month = birth_date[4:6]
            32     day = birth_date[6:]
            33     area_code = id_card[:6]
            34     # TODO: 根據(jù)地區(qū)碼表獲取地區(qū)信息
            35     return {
            36         'gender': gender,
            37         'birth_date': f'{year}-{month}-{day}',
            38         'area_code': area_code
            39     }
            40 if __name__ == '__main__':
            41     while True:
            42         id_card = input("請輸入身份證號:")
            43         if validate_id_card(id_card):
            44             info = extract_id_card_info(id_card)
            45             print(f'性別:{info["gender"]}')
            46             print(f'出生日期:{info["birth_date"]}')
            47             print(f'地區(qū)碼:{info["area_code"]}')
            48         else:
            49             print('身份證號碼不合法\n')

            posted on 2024-04-22 20:58 Benjamin 閱讀(85) 評論(0)  編輯 收藏 引用 所屬分類: python

            欧美国产精品久久高清| 久久精品人成免费| 欧美激情精品久久久久久久| 麻豆国内精品久久久久久| 无码人妻少妇久久中文字幕| 亚洲天堂久久久| 久久精品国产清高在天天线| 久久99国产精品99久久| 欧美久久一区二区三区| 性高湖久久久久久久久| 久久精品国产亚洲麻豆| 伊人色综合九久久天天蜜桃| 久久国产高潮流白浆免费观看| 精品水蜜桃久久久久久久| 亚洲国产精品无码久久久秋霞2 | 色综合合久久天天给综看| 亚洲国产另类久久久精品小说| 久久婷婷国产麻豆91天堂| 久久久这里有精品| 国产精品成人99久久久久| 亚洲精品国产字幕久久不卡| 久久www免费人成看国产片| 国产精品久久久久久搜索| 久久久久久国产精品无码下载 | 午夜精品久久久内射近拍高清 | 无码任你躁久久久久久老妇App| 亚洲国产精品人久久| 久久久久亚洲AV片无码下载蜜桃 | 久久se这里只有精品| 久久国产精品99精品国产987| 久久久久久亚洲精品成人| 久久精品国产亚洲AV香蕉| 精品久久久久成人码免费动漫| 国内精品久久久久久麻豆| 中文字幕成人精品久久不卡| 2022年国产精品久久久久 | 99久久精品免费看国产一区二区三区| 久久久久久一区国产精品| 久久99精品久久久久久齐齐| 国产精品日韩深夜福利久久| 国产精品伊人久久伊人电影|