码迷,mamicode.com
首页 > 其他好文 > 详细

创建身份证号

时间:2019-08-21 00:07:31      阅读:386      评论:0      收藏:0      [点我收藏+]

标签:import   pycha   bin   and   lin   ESS   check   end   随机   

 1 #!/usr/bin/python3
 2 import random
 3 
 4 # 从"身份证地址对照表.txt"读取地址码和对应的地址,保存为字典
 5 def createIDaddress(file):
 6     D = []
 7     for line in open(file):
 8         if not line[5] == 0:
 9             D.append(line[0:6])
10     return (D)
11 
12 # 随机生日码
13 def createBrithday(sYear=1979,eYear=2009):
14     year = random.randint(sYear,eYear)
15     month = random.randint(1,12)
16     day = random.randint(1,28)
17     berthday = str(year).zfill(4)+str(month).zfill(2)+str(day).zfill(2)
18     return (berthday)
19 
20 # 随机顺序码 1:男 2:女
21 def createRandomCode(numMax = 999,sex = ):
22     code = random.randint(100,numMax)
23     if sex == :
24         if code % 2 == 1:
25             # print(‘性别:男,code{}‘.format(code))
26             return code
27         else:
28             # print(‘性别:男,code{}‘.format(code+1))
29             return code+1
30     elif sex == :
31         if code % 2 == 0:
32             # print(‘性别:女,code{}‘.format(code))
33             return code
34         else:
35             # print(‘性别:女,code{}‘.format(code+1))
36             return code + 1
37     else:
38         return "输入错误:(男:1 女:2)"
39 
40 # 计算校验码
41 def checkCode(number):
42     S = 43         int(number[0]) * 7 + 44         int(number[1]) * 9 + 45         int(number[2]) * 10 + 46         int(number[3]) * 5 + 47         int(number[4]) * 8 + 48         int(number[5]) * 4 + 49         int(number[6]) * 2 + 50         int(number[7]) * 1 + 51         int(number[8]) * 6 + 52         int(number[9]) * 3 + 53         int(number[10]) * 7 + 54         int(number[11]) * 9 + 55         int(number[12]) * 10 + 56         int(number[13]) * 5 + 57         int(number[14]) * 8 + 58         int(number[15]) * 4 + 59         int(number[16]) * 2
60     mod = S % 11
61     mod_dist = {0:1, 1:0, 2:X, 3:9, 4:8, 5:7, 6:6, 7:5, 8:4, 9:3, 10:2}
62     checkMod = mod_dist[mod]
63     return checkMod
64 
65 # 生成二代身份证 参数1:要生成的数量 参数2:男:1 女:2
66 def idNumber(shuliang = 1,sex = ):
67     filePath = /Users/zhaodi/PycharmProjects/python3/学习/自动化测试脚本/txt文档/身份证号地址对照表.txt
68     idAdd = createIDaddress(filePath)
69 
70     L = []  #生成空列表,存放生成的号码
71     while shuliang > 0:
72         addCode = random.choice(idAdd)          # 随机地址码
73         brithady = createBrithday(1949,2009)            #随机生日
74         randomCode = createRandomCode(999,sex)     #随机code码
75         number = str(addCode) + str(brithady) + str(randomCode)  #17位数字
76         cCode = checkCode(number)   #检查码
77 
78         # 合成身份证号
79         id_Card = number + cCode
80         print("身份证号:{}".format(id_Card))
81         L.append(id_Card)
82         shuliang = shuliang - 1
83     return L
84 
85 idNumber(1,)

 

创建身份证号

标签:import   pycha   bin   and   lin   ESS   check   end   随机   

原文地址:https://www.cnblogs.com/xuelei-0728/p/11386235.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!