个人信息随机生成的 Python 实现
最编程
2024-05-05 08:59:36
...
""" 生成随机姓名、电话号码、身份证号、性别、应行卡号、邮箱 """ import random from firstname import first_name from langconv import * from province_id import province_id from phone_number import phone_number # from langconv import Converter # 随机生成姓名 def get_name(): name_code = '' # 在百家姓列表里面随便选择一个姓 name_code+=random.choice(first_name) ran_num = random.randint(0,1) # 为0生成的名字是两个字,为1生成的名字是一个字 if ran_num ==0: for i in range(2): # 从十进制汉字编码随机选取一个 ran = random.randint(19968,40869) # 将其转换为汉字 ran = chr(ran) name_code+=ran else: # 从十进制汉字编码随机选取一个 ran = random.randint(19968, 40869) # 将其转换为汉字 ran = chr(ran) name_code += ran # 将name_code里面的繁体字转换为简体字 name_code = Converter('zh-hans').convert(name_code) # 编码 name_code.encode('utf-8') return name_code # 随机生成身份证号 def get_idnum(): id_num = '' # 随机选择地址码 id_num+=str(random.choice(province_id)) # 随机生成4-6位地址码 for i in range(4): ran_num = str(random.randint(0,9)) id_num+=ran_num b = get_birthday() id_num+=b # 生成15、16位顺序号 num = '' for i in range(2): num += str(random.randint(0,9)) id_num+=num # 通过性别判断生成第十七位数字 男单 女双 s = get_sex() print("性别:",s) if s =='男': # 生成奇数 seventeen_num = random.randrange(1,9,2) else: seventeen_num = random.randrange(2,9,2) id_num+=str(seventeen_num) eighteen_num = str(random.randint(1,10)) if eighteen_num =='10': eighteen_num = 'X' id_num+=eighteen_num return id_num # 随机生成出生日期 def get_birthday(): # 随机生成年月日 year = random.randint(1960,2000) month = random.randint(1,12) # 判断每个月有多少天随机生成日 if year%4 ==0: if month in (1,3,5,7,8,10,12): day = random.randint(1,31) elif month in (4,6,9,11): day = random.randint(1,30) else: day = random.randint(1,29) else: if month in (1,3,5,7,8,10,12): day = random.randint(1,31) elif month in (4,6,9,11): day = random.randint(1,30) else: day = random.randint(1,28) # 小于10的月份前面加0 if month < 10: month = '0' + str(month) if day < 10: day = '0' + str(day) birthday = str(year)+str(month)+str(day) return birthday # 匿名函数 get_sex = lambda :random.choice(['男','女']) # 随机生成手机号 def get_tel(): tel = '' tel+=str(random.choice(phone_number)) ran = '' for i in range(8): ran += str(random.randint(0,9)) tel +=ran return tel # 随机生成银行卡号 def get_card_id(): card_id = '62' for i in range(17): ran = str(random.randint(0,9)) card_id += ran return card_id # 随机生成邮箱 def get_email(): email_suf = random.choice(['@163.com','@qq.com','@126.com','@sina.com','@sina.cn','@soho.com','@yeah.com']) phone = get_tel() email = phone + email_suf print("手机号:",phone) return email x = get_name() print("姓名:",x) y = get_idnum() print("身份证号:",y) z = get_email() print("邮箱:",z) w = get_card_id() print("银行卡号:",w)
firstname.py """ 百家姓列表 """ first_name = ['赵' ,'钱', '孙','李','周','吴','郑','王','冯','陈','褚','卫','蒋', '沈','韩','杨','朱','秦','尤','许','何','吕','施','张','孔','曹' ,'严','华','金','魏','陶','姜','戚','谢','邹','喻','柏','水','窦','章','云','苏', '潘','葛','奚','范','彭','郎','鲁','韦','昌','马','苗','凤','花','方','俞','任','袁','柳', '酆','鲍','史','唐','费','廉','岑','薛','雷','贺','倪','汤','滕','殷','罗','毕','郝','邬', '安','常','乐','于','时','傅','皮','卞','齐','康','伍','余','元','卜','顾','孟','平','黄', '和','穆','萧','尹','姚','邵','湛','汪','祁','毛','禹','狄','米','贝','明','臧','计','伏', '成','戴','谈','宋','茅','庞','熊','纪','舒','屈','项','祝','董','粱','杜','阮','蓝','闵', '席','季','麻','强','贾','路','娄','危','江','童','颜','郭','梅','盛','林','刁','钟','徐', '邱','骆','高','夏','蔡','田','樊','胡','凌','霍','虞','万','支','柯','昝','管','卢','莫', '经','房','裘','缪','干','解','应','宗','丁','宣','贲','邓','郁','单','杭','洪','包','诸', '左','石','崔','吉','钮','龚','程','嵇','邢','滑','裴','陆','荣','翁','荀','羊','於','惠', '甄','麴','家','封','芮','羿','储','靳','汲','邴','糜','松','井','段','富','巫','乌','焦', '巴','弓','牧','隗','山','谷','车','侯','宓','蓬','全','郗','班','仰','秋','仲','伊','宫', '宁','仇','栾','暴','甘','钭','厉','戎','祖','武','符','刘','景','詹','束','龙','叶','幸', '司','韶','郜','黎','蓟','薄','印','宿','白','怀','蒲','邰','从','鄂','索','咸','籍','赖', '卓','蔺','屠','蒙','池','乔','阴','欎','胥','能','苍','双','闻','莘','党','翟','谭','贡', '劳','逄','姬','申','扶','堵','冉','宰','郦','雍','舄','璩','桑','桂','濮','牛','寿','通', '边','扈','燕','冀','郏','浦','尚','农','温','别','庄','晏','柴',