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

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

import randomhe=['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

转载于:https://www.cnblogs.com/shiqijuemu/p/10044059.html

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

  1. 如何用 Python 写 Excel 中 Vlookup 函数?

    作者 | 黄伟呢 出品 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 |  CSDN 下载自视觉中国 背景 Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了 ...

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

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

  3. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  4. 手机版python3h如何自制游戏_教你如何用 Python 写一个小游戏

    教你如何用 Python 写一个小游戏 引言 最近 python 语言大火, 除了在科学计算领域 python 有用武之地之外, 在游戏后台等方面, python 也大放异彩, 本篇博文将按照正规的项 ...

  5. 如何用python写一个计算日期间隔的程序?

    如何用python写一个计算日期间隔的程序? 文章目录 如何用python写一个计算日期间隔的程序? 前言 问题梳理 问题解决 写在后面 前言 为什么想起来写一个这样的程序呢? 前几天聊天的时候,突然 ...

  6. python 题库自动答题,自动匹配题库_如何用python写一个从题库自动匹配的答题脚本_淘题吧...

    A. web数据库题目:根据用户输入的用户名和密码于数据库中的记录是否匹配制作一个用户登录模块 http://blog.csdn.net/love_leve/article/details/43226 ...

  7. python写一个接口_如何用python写接口

    如何用python写接口?具体步骤如下: 1.实例化server 2.装饰器下面的函数变为一个接口 3.启动服务 开发工具和流程: python库:flask =>实例化server:serve ...

  8. [译] 如何用 Python 写一个 Discord 机器人

    原文地址:How to write a Discord bot in Python 原文作者:Junpei Shimotsu 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...

  9. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  10. 如何用python写汉诺塔游戏的辅助

    今天我来分享如何用python写一个游戏的辅助 大游戏的外挂我们写不了但是我们可以写个小游戏–汉诺塔 的外挂,这个游戏相信很多同学都玩过. 开始是三层,还很简单,四层还好,五层六层就有点费脑壳了. 话 ...

最新文章

  1. 使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能
  2. 网站托管运营需要注意哪些内容?
  3. 【转】】Vue项目部署tomcat,刷新报错404解决办法
  4. Windows7下注册OCX的注意事项
  5. c语言得到txt文件的长度,我利用C语言实现SHA-256算法,需要从一个txt文件中读出数据并把...
  6. 深度学习数据集中数据差异大_使用差异隐私来利用大数据并保留隐私
  7. JAVA项目实训struts2_JavaWeb学习:Struts2与Spring的IOC练习
  8. 自制EDL工程线进坚果R1手机9008端口刷机记录
  9. Windows系统常用网络命令详解及命令示例(全)
  10. 【CV】胶囊网络 CapsNet:胶囊之间的动态路由机制
  11. golang tomb_古墓丽影》(Tomb Raider)的补丁可改善Linux的游戏性和新游戏
  12. leetcode 183. Customers Who Never Order
  13. 实验六软件包管理linux,oeasy教您玩转linux010202软件包管理apt
  14. [总结]FFMPEG视音频编解码零基础学习方法
  15. cinnamon桌面_使用Cinnamon增强您的Linux桌面
  16. Vue页面实现打印功能
  17. Passage Re-ranking with BERT
  18. 安全的网络通道——网络准入之二层准入
  19. Idea导包正确还是显示标红(错误)
  20. 打印机消失,print spooler服务启动后,自动停止

热门文章

  1. SQL SERVER DBCC 命令集整理
  2. JSP中实现网页访问统计的方法
  3. 用YACC/LEX 设计计算机语言
  4. gin构建包含模板的二进制文件
  5. 工作中用的linux命令
  6. 你什么时候觉得自己会被边缘化?
  7. Linux开关机命令:shutdown,reboot,halt,init之间的区别
  8. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记四
  9. inode占满前因后果
  10. bzoj千题计划262:bzoj4868: [六省联考2017]期末考试