美文网首页
python进行身份证号生成

python进行身份证号生成

作者: 楚糖的糖 | 来源:发表于2021-08-11 13:37 被阅读0次
    '''
    
    进行身份证信息的校验
    输入前17位数,自动计算第18位数
    '''
    
    
    
    def jiaoyanma(shenfenzheng17):
        def haoma_validate(shenfenzheng17):
            if type(shenfenzheng17) in [str, list, tuple]:
                if len(shenfenzheng17) == 17:
                    return True
            raise Exception('Wrong argument')
    
        if haoma_validate(shenfenzheng17):
            if type(shenfenzheng17) == str:
                seq = map(int, shenfenzheng17)
            elif type(shenfenzheng17) in [list, tuple]:
                seq = shenfenzheng17
    
            t = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
            s = sum(map(lambda x: x[0] * x[1], zip(t, map(int, seq))))
            b = s % 11
            bd = {
                0: '1',
                1: '0',
                2: 'X',
                3: '9',
                4: '8',
                5: '7',
                6: '6',
                7: '5',
                8: '4',
                9: '3',
                10: '2'
            }
    
            return bd[b]
    
    
    if __name__ == '__main__':
        print(jiaoyanma('32048319950908561'))
    

    相关文章

      网友评论

          本文标题:python进行身份证号生成

          本文链接:https://www.haomeiwen.com/subject/qiaqbltx.html