写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母、小写字母、数字和特殊字符

和上一期一样 代码中间有段比较混沌 有问题的可以@我

import random
he=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z','A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W','X', 'Y', 'Z','0', '1', '2', '3', '4', '5', '6', '7', '8', '9','~','!','?','#','$','&','*']#所有的大小写字母特殊字符和0-9数字
da={'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z'}#所有大写字母
xiao={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z',}#所有的小写字母
shu={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}#0-9数字
te={'~','!','?','#','$','&','*'}#自定义特殊字符
emile_wei = ["@qq.com", "@163.com", "@126.com", "@sina.com"]#邮箱后缀 def Emile(number):#函数名和需要的参数
tou_infos = []#存储所有的邮箱
for j in range(number):#决定想要得到的邮箱个数
while True:#用来判断邮箱是否成立
tou_num=random.randint(6,12)#决定前缀的长度范围
emile_weis = random.choice(emile_wei)#随机取值后缀
tou_info=[]#定义空列表存储获得的元素
for i in range(tou_num):
tou_info+=random.choice(he)#从大列表中取值依次赋值
sj=set(tou_info)#转成集合做if判断备用
c = tou_num - len(sj)#求差值备用(是if判断生效)
if (len(da)+tou_num)==len(da|sj)+c:#(用理论情况下(要对比集合(da={}))与(邮箱前缀)的和)比较
# (实际情况(邮箱前缀(去重成集合))与对比集合(da={})加上去重的差值 c)
continue
elif (len(xiao)+tou_num)==len(xiao|sj)+c:
continue
elif (len(te)+tou_num)==len(te|sj)+c:
continue
elif (len(shu)+tou_num)==len(shu|sj)+c:
continue
else:
q="".join(tou_info)+emile_weis#把列表转换成字符串拼接邮箱后缀
break
tou_infos.append(q)#依次加入存储油箱的列表
return tou_infos#做返回 dayin=int(input("其输入你想打印的邮箱号个数:"))
# print(Emile(dayin))
while True:#做防止重复判断
x = set(Emile(dayin))#把列表转写成集合去除重复值
if len(x)<dayin:#对比集合元素个数和想要的邮箱号个数
# dayin=dayin-len(x)
dayin-=len(x)
x.add(Emile(dayin))#用差值再次调用函数
continue
else:
print(x)
break

自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。的更多相关文章

  1. 如何用Python写一个贪吃蛇AI

    前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...

  2. 如何用 Python 写一个简易的抽奖程序

    不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...

  3. 自动化测试(三)如何用python写个一函数,这个函数的功能是,传入一个数字,产生N条手机号,产生的手机号不能重复

    本期时间短没来得及写思路,不过我都加了注释,有问题可以@我 import randomimport timedef Phones(number):#生成手机号函数 s = "01234567 ...

  4. 自动化测试(二)如何用python写一个用户登陆功能

    需求信息: 写一个判断登录的程序: 输入: username password 最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限 需要判断输入是否为空,什么也不输入,输入一个空格.n个 ...

  5. 自动化测试(三)如何用python写个双色球

    写一个程序,输入N就产生N条双色球号码 红球  6     01-33 蓝球  1     01-16 产生的双色球号码不能重复,写到一个文件里面,每一行是一条 红球: 01 03 05 07 08  ...

  6. 如何用Python写一个计算器软件 附带效果图

    该计算器使用Python  tkinter模块开发 效果如下图 import tkinter #导入tkinter模块 root = tkinter.Tk() root.minsize(280,500 ...

  7. 如何用Python写一个每分每时每天的定时程序

    1.计算生日是星期几 当你女朋友要过生日了,你肯定要定找家饭店订个餐庆祝一下,餐馆工作日会空一些,周末位置不好定,要是能知道她的生日是星期几就好了,下面这个程序就能搞定~~ 比如girl friend ...

  8. 逆向libbaiduprotect(三)- 移植python操作dalvik虚拟机c++函数,配合gdb控制程序运行流程

    python编译移植到测试机,并且移植ctypes模块.利用ctypes代替c程序,利用dalvik内部c++函数,在运行过程中手动命令操控dalvik虚拟机,并结合gdb进行调试.绕过zygote和 ...

  9. 如何用python写个人专属群聊提醒小助手?

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚生 ...

随机推荐

  1. 814. Binary Tree Pruning(leetcode) (tree traverse)

    https://leetcode.com/contest/weekly-contest-79/problems/binary-tree-pruning/ -- 814 from leetcode tr ...

  2. Jenkins添加项目说明,增加项目描述

    背景:往往正常Jenkins上呈现的内容,太过简短,不易直观看了解项目是干嘛的,如下面的内容: 解决方案,使用插件,Extra Columns Plugin 安装成功后配置,需要结合自定义视图使用,新 ...

  3. Android(java)学习笔记62:android.intent.action.MAIN 与 android.intent.category.LAUNCHER 理解

    1. 先看看网路上的说法: android.intent.action.MAIN 决定应用程序最先启动的 Activity android.intent.category.LAUNCHER 决定应用程 ...

  4. OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)

            用OpenGL动态绘制线段.事实上非常easy,但到如今为止.网上可參考资料并不多. 于是亲自己主动手写一个函数,方便动态绘制线段.代码例如以下: #include<GL/glu ...

  5. python2.7 加密模块 解决各种坑

    1 Python27 安装crypto Windows安装 在Windows上安装的时候直接 pip install pycrypto会报错,参考:http://blog.csdn.net/teloy ...

  6. mysql如何查看错误代码具体释义?(基于perror)

    mysql如何查看错误代码具体释义? 关键词:mysql错误代码,mysql错误号 perror 错误号

  7. 最大公约数(gcd模板)

    int gcd(int a,int b) { ) { int t=a%b; a=b; b=t; } return a; }

  8. Centos下使用Docker部署asp.net core项目

    本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...

  9. 安装破解IDEA(个人使用)

    安装的过程,许多的教程都会有,我在这里附上一两个链接吧:https://blog.csdn.net/newabcc/article/details/80601933 他这里也有破解过程,但是比较麻烦, ...

  10. 在github上查找star最多的项目

    如何在github上查找star最多的项目 在search中输入stars:>1 就可以查找所有有star的项目,然后右上角根据自己的需要筛选 当我输入stars:>10000的时候,就会 ...