美文网首页工作生活
学习_02_自定义造数据函数

学习_02_自定义造数据函数

作者: 雷阳洪 | 来源:发表于2019-07-02 18:28 被阅读0次
    import random
    import string
    # 生成性别
    def get_sex():
        sex = random.randint(0, 1)
        sex_name = ''
        if sex == 0:
            sex_name = '男'
        else:
            sex_name = '女'
        print(sex_name)
        return sex
    
    # 根据性别生成名字
    def get_name(sex):
        first_name = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华" \
                     "金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞" \
                     "任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐" \
                     "康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈" \
                     "宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林" \
                     "刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗宣丁" \
                     "贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮" \
                     "羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁" \
                     "仇栾暴甘钭厉戎祖武符刘姜詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索" \
                     "咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍" \
                     "却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼" \
                     "容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚" \
                     "越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相" \
                     "查后江红游竺权逯盖益桓公万俟司马上官欧阳夏侯诸葛闻人东方赫连皇" \
                     "甫尉迟公羊澹台公冶宗政濮阳淳于仲孙太叔申屠公孙乐正轩辕令狐钟离" \
                     "闾丘长孙慕容鲜于宇文司徒司空亓官司寇仉督子车颛孙端木巫马公西漆" \
                     "雕乐正壤驷公良拓拔夹谷宰父谷粱晋楚阎法汝鄢涂钦段干百里东郭南门" \
                     "呼延归海羊舌微生岳帅缑亢况后有琴梁丘左丘东门西门商牟佘佴伯赏南" \
                     "宫墨哈谯笪年爱阳佟第五言福百家姓续"
        girl = "秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲" \
               "真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎" \
               "锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰" \
               "韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸" \
               "菲寒伊亚宜可姬舒影荔枝思丽 "
        boy = "伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国" \
              "胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博" \
              "诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固" \
              "之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛" \
              "雄琛钧冠策腾楠榕风航弘"
        # 1. 第一个字随机取first_name变量里面的一个字符
        first = random.choice(first_name)
    
        # 2. 第二个字判断传入的sex如果为0(男),就选择boy,如果为1(女孩),就选择girl,最后赋值给names变量
        names = boy if sex == 0 else girl
    
        # 3. 1)对已经做过判断的names变量(此时已经确定为1或者为0了), 2)随机抽取一个字符,确定姓名的第二个名字, 3)最后赋值给second变量
        second = random.choice(names)
    
        # 4. 1)随机选择是否为0或者1,2)赋值给变has_third量
        has_third = random.randint(0, 1)
    
        # 5. 1)如果has_third变量为1,对已经做过判断的names变量随机选择一个字符,确定姓名的第三个字, 2)has_third如果为0,第三个名字就为空
        third = random.choice(names) if has_third == 1 else ''
    
        # 6. 进行字符串拼接,赋值给full_name变量
        full_name = first+second+third
    
        # 7. 最后返回生成的姓名 full_name变量
        return full_name
    
    
    # 随机生成密码
    def get_pwd():
        # 获取string类的大小写字母
        # 1. 获取所有的小写和大写字母
        # 2. 赋值给s
        s = string.ascii_letters + string.ascii_uppercase
        # 1. 从 s 里面随机获取5个字符
        pwd = random.sample(s, 5)
    
        # 往pwd里面随机添加一个小写字母, 1:先获取所有的小写字母 2:再随机获取一个小写字母 3:添加至pwd list里面
        pwd.extend(random.choice(string.ascii_lowercase))
    
        # 往pwd里面随机添加一个大写字母 1:先获取所有的大写字母 2:再随机获取一个大写字母 3:添加至pwd list里面
        pwd.extend(random.choice(string.ascii_uppercase))
    
        # 往pwd里面随机添加一个数字 1:先获取所有的数字 2:再随机获取一个数字 3:添加至pwd list里面
        pwd.extend(random.choice(string.digits))
    
        # 随机打乱pwd里面每个元素的顺序
        random.shuffle(pwd)
    
        # 列表转换成字符串
        pwd = ''.join(pwd)
        # 返回处理之后的pwd
        return pwd
    
    
    # 随机生成电话号码
    def get_tell():
        # 确定电话号码的前三位
        tel_first = [134, 135, 136, 137, 138, 139, 150, 151, 152, 157, 158,159, 130, 131, 132, 155, 156, 133, 153]
    
        # 1.随机取tel_first其中的一个元素.转换成字符串类型,不转换会报错
        first = str(random.choice(tel_first))
    
        # 2.获取手机号码的4-7位号码,1. 先随机取0-9999的整数,+10000左自动补0,并只展示从索引为1开始至后面的所有数字,最后转换成字符串类型
        second = str(random.randint(0, 9999) + 10000)[1:]
    
        # 3.获取手机号码的8-11位号码,1. 先随机取0-9999的整数,+10000左自动补0,并只展示从索引为1开始至后面的所有数字,最后转换成字符串类型
        third = str(random.randint(0, 9999) + 10000)[1:]
    
        # 4.最后进行字符串拼接 存到tell变量里面
        tell = first + second + third
        #  返回处理之后的tell
        return tell
    
    
    # 地址
    def get_site():
        province = '上海市'
        districts = ['黄浦区', '徐汇区', '长宁区', '静安区', '普陀区', '虹口区', '闸北区', '杨浦区', '闵行区', '宝山区', '青浦区', '松江区', '嘉定区', '奉贤区',
                     '金山区', '浦东新区']
        road_list = '重庆大厦', '黑龙江路', '十梅庵街', '遵义路', '湘潭街', \
                    '瑞金广场', '仙山街', '仙山东路', '仙山西大厦', '白沙河路', \
                    '赵红广场', '机场路', '民航街', '长城南路', '流亭立交桥', \
                    '虹桥广场', '长城大厦', '礼阳路', '风岗街', '中川路', '白塔广场', \
                    '兴阳路', '文阳街', '绣城路', '河城大厦', '锦城广场', '崇阳街', \
                    '华城路', '康城街', '正阳路', '和阳广场', '中城路', '江城大厦', \
                    '顺城路', '安城街', '山城广场', '春城街', '国城路', '泰城街', \
                    '德阳路', '明阳大厦', '春阳路', '艳阳街', '秋阳路', '硕阳街', \
                    '青威高速', '瑞阳街', '丰海路', '双元大厦', '惜福镇街道', \
                    '夏庄街道', '古庙工业园', '中山街', '太平路', '广西街', \
                    '潍县广场', '博山大厦', '湖南路', '济宁街', '芝罘路', \
                    '易州广场', '荷泽四路', '荷泽二街', '荷泽一路', '荷泽三大厦', \
                    '观海二广场', '广西支街', '观海一路', '济宁支街', '莒县路', \
                    '平度广场', '明水路', '蒙阴大厦', '青岛路', '湖北街', \
                    '江宁广场', '郯城街', '天津路', '保定街', '安徽路', \
                    '河北大厦', '黄岛路', '北京街', '莘县路', '济南街', \
                    '宁阳广场', '日照街', '德县路', '新泰大厦', '荷泽路', \
                    '山西广场', '沂水路', '肥城街', '兰山路', '四方街', '平原广场', \
                    '泗水大厦', '浙江路', '曲阜街', '寿康路', '河南广场', '泰安路', \
                    '大沽街', '红山峡支路', '西陵峡一大厦', '台西纬一广场', \
                    '台西纬四街', '台西纬二路', '西陵峡二街', '西陵峡三路', \
                    '台西纬三广场', '台西纬五路', '明月峡大厦', '青铜峡路', \
                    '台西二街', '观音峡广场', '瞿塘峡街', '团岛二路', '团岛一街', \
                    '台西三路', '台西一大厦', '郓城南路', '团岛三街', '刘家峡路', \
                    '西藏二街', '西藏一广场', '台西四街', '三门峡路', '城武支大厦', \
                    '红山峡路', '郓城北广场', '龙羊峡路', '西陵峡街', '台西五路', \
                    '团岛四街', '石村广场', '巫峡大厦', '四川路', '寿张街', \
                    '嘉祥路', '南村广场', '范县路', '西康街', '云南路', '巨野大厦', \
                    '西江广场', '鱼台街', '单县路', '定陶街', '滕县路', '钜野广场', \
                    '观城路', '汶上大厦', '朝城路', '滋阳街', '邹县广场', '濮县街', \
                    '磁山路', '汶水街', '西藏路', '城武大厦', '团岛路', '南阳街', \
                    '广州路', '东平街', '枣庄广场', '贵州街', '费县路', '南海大厦', \
                    '登州路', '文登广场', '信号山支路', '延安一街', '信号山路', \
                    '兴安支街', '福山支广场', '红岛支大厦', '莱芜二路', '吴县一街', \
                    '金口三路', '金口一广场', '伏龙山路', '鱼山支街', '观象二路', \
                    '吴县二大厦', '莱芜一广场', '金口二街', '海阳路', '龙口街', \
                    '恒山路', '鱼山广场', '掖县路', '福山大厦', '红岛路', '常州街', \
                    '大学广场', '龙华街', '齐河路', '莱阳街', '黄县路', '张店大厦', \
                    '祚山路', '苏州街', '华山路', '伏龙街', '江苏广场', '龙江街', \
                    '王村路', '琴屿大厦', '齐东路', '京山广场', '龙山路', '牟平街', \
                    '延安三路', '延吉街', '南京广场', '东海东大厦', '银川西路', \
                    '海口街', '山东路', '绍兴广场', '芝泉路', '东海中街', '宁夏路', \
                    '香港西大厦', '隆德广场', '扬州街', '郧阳路', '太平角一街', \
                    '宁国二支路', '太平角二广场', '天台东一路', '太平角三大厦', \
                    '漳州路一路', '漳州街二街', '宁国一支广场', '太平角六街', \
                    '太平角四路', '天台东二街', '太平角五路', '宁国三大厦', \
                    '澳门三路', '江西支街', '澳门二路', '宁国四街', '大尧一广场', \
                    '咸阳支街', '洪泽湖路', '吴兴二大厦', '澄海三路', '天台一广场', \
                    '新湛二路', '三明北街', '新湛支路', '湛山五街', '泰州三广场', \
                    '湛山四大厦', '闽江三路', '澳门四街', '南海支路', '吴兴三广场', \
                    '三明南路', '湛山二街', '二轻新村镇', '江南大厦', '吴兴一广场', \
                    '珠海二街', '嘉峪关路', '高邮湖街', '湛山三路', '澳门六广场', \
                    '泰州二路', '东海一大厦', '天台二路', '微山湖街', '洞庭湖广场', \
                    '珠海支街', '福州南路', '澄海二街', '泰州四路', '香港中大厦', \
                    '澳门五路', '新湛三街', '澳门一路', '正阳关街', '宁武关广场', \
                    '闽江四街', '新湛一路', '宁国一大厦', '王家麦岛', '澳门七广场', \
                    '泰州一路', '泰州六街', '大尧二路', '青大一街', '闽江二广场', \
                    '闽江一大厦', '屏东支路', '湛山一街', '东海西路', \
                    '徐家麦岛函谷关广场', '大尧三路', '晓望支街', '秀湛二路', \
                    '逍遥三大厦', '澳门九广场', '泰州五街', '澄海一路', '澳门八街', \
                    '福州北路', '珠海一广场', '宁国二路', '临淮关大厦', '燕儿岛路', \
                    '紫荆关街', '武胜关广场', '逍遥一街', '秀湛四路', '居庸关街', \
                    '山海关路', '鄱阳湖大厦', '新湛路', '漳州街', '仙游路', '花莲街'
        # 1.随机取districts其中的一个元素.
        second = str(random.choice(districts))
    
        # 2.随机取road_list其中的一个元素.
        third = str(random.choice(road_list))
    
        # 随机取指定范围的门牌号
        fourth = str(random.randint(20, 150)) + "号"
    
        # 1. 1)随机获取1-20的楼层,2)随机获取1-15的房间并且左补0(+100的作用就是为了左补0) 3.字符串'室'
        fifth = str(random.randint(1, 20)) + str(random.randint(1, 15) + 100)[1:] + '室'
    
        # 2. 1)字符串拼接,赋值给site变量
        site = province+second+third+fourth+fifth
    
        # 3. 1)返回生成的地址 site
        return site
    
    
    # 邮箱
    def get_email():
        email_suffix = ['@gmail.com', '@yahoo.com', '@msn.com', '@hotmail.com',
                        '@aol.com', '@ask.com', '@live.com', '@qq.com',
                        '@0355.net', '@163.com', '@163.net', '@263.net',
                        '@3721.net', '@yeah.net', '@googlemail.com', '@126.com',
                        '@sina.com', '@sohu.com', '@yahoo.com.cn']
        # 1.获取string类里面的所有大小写字母,2.随机取一个大小写字母
        first = random.choice(string.ascii_letters)
        # 获取string类里面的大小写字母 + string类的所有数字 + 下划线'_'
        nums = string.ascii_letters + string.digits + '_'
        # 随机取一个指定范围的整数
        length = random.randint(5, 17)
        # 1.根据length变量随机生成的长度 获取指定长度的列表. 2.nums随机生成的有数字+字母,这个时候需要用map函数将列表转换成str类型,然后再join拼接 3.赋值给second变量
        second = ''.join(map(str, random.sample(nums, length)))
        # 随机取一个邮箱的后缀
        third = random.choice(email_suffix)
        # 字符串拼接
        email = first + second +third
        # 返回生成的email
        return email
    
    

    调用函数

    import string
    import random
    from functions import *
    
    # 生成注册数据
    for i in range(1):
        sex = "性别:" + get_sex()
        name = "名字:" + get_name(sex)
        tell = "电话:" + get_tell()
        pwd = "密码:" + get_pwd()
        print(sex + "\n" + name + "\n" + tell + "\n" + pwd)
    
    # 生成实名制数据
    for i in range(1):
        sex = "性别:" + get_sex()
        name = "名字:" + get_name(sex)
        site = "地址:" + get_site()
        tell = "电话:" + get_pwd()
        email = "邮箱:" + get_email()
        print(sex + "\n" + name + "\n" + site + "\n" + tell + "\n" + email)
    
    # 生成收件人数据
    for i in range(1):
        sex = "性别:" + get_sex()
        name = "名字:" + get_name(sex)
        site = "地址:" + get_site()
        tell = "电话:" + get_pwd()
        print(sex + "\n" + name + "\n" + site + "\n" + tell )
    '''
    print(random.random())
    print(random.randint(1, 10))
    print(random.randrange(1, 10, 3))
    List = ['a', 'b', 'c', 1, 2, 3]
    print(random.choice(List))
    print(random.sample(List, 3))
    random.shuffle(List)
    print(List)
    
    # string
    # 小写字符
    print(string.ascii_lowercase)
    # 大写字符
    print(string.ascii_uppercase)
    # 大小写字符
    print(string.ascii_letters)
    # 数字
    print(string.digits)
    # 标点符号
    print(string.punctuation)
    # 所有可打印的字符
    print(string.printable)
    '''
    

    相关文章

      网友评论

        本文标题:学习_02_自定义造数据函数

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