python-随机生成N条邮箱号

需求:
      产生N条邮箱号
          1、写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱
          2、产生的邮箱不能重复,且邮箱前面的长度是6-12之间
          3、产生的邮箱必须包含大写字母、小写字母、数字和特殊字符
          4、邮箱后缀可以选择163.com、qq.com、sina.com、126.com
 思路:
          必须包含大写、小写、数字、特殊字符,产生的N个手机号不能重复:
          1、方法一:可以在大写、小写、数字、特殊字符里面每样取几个字符,这样就同时包含四种字符了。
          2、方法二:取到的邮箱号分别与大写、小写、数字、特殊字符取交集来判断是否同时包含了四种字符。

注:while()循环:当while后面的条件为真,才执行while循环体内的while suite,直到条件为假时,退出循环。

 1 import random
 2 import string
 3 #方法一:
 4 def random_email(n):
 5     emails=set()#定义一个空的集合,存储生成的N个邮箱号
 6     while len(emails)!=n:
 7         email_len=random.randint(6,12) #指定一个范围随机取整数
 8         email_end=random.choice((‘@163.com‘, ‘@qq.com‘, ‘@sina.com‘, ‘@126.com‘)) #随机取一个元素
 9         #在小写、大写、特殊字符、数字里分别每样取一个字符,长度为4
10         email_s=random.choice(string.ascii_lowercase)+random.choice(string.ascii_uppercase)+random.choice(string.punctuation)+random.choice(string.digits)
11         #剩下的2-8个字符在大小写、特殊字符、数字中随机取出来
12         str=string.digits+string.punctuation+string.ascii_letters
13         str_len=email_len-4
14         email_e=random.sample(str,str_len) #随机选取几个元素,返回list
15         email_start=list(email_s)+email_e #字符串转list
16         random.shuffle(email_start) #打乱列表,返回值为空
17         email=‘‘.join(email_start)+email_end+‘\n‘ #一个完整的邮箱号  list转字符串
18         emails.add(email)
19     with open(‘user.txt‘,‘w‘) as fw:
20         fw.writelines(emails)
21
22 #方法二:
23 def random_email2(n):
24     emails=set() #定义一个空的集合,存储生成的N个邮箱号
25     while len(emails)!=n:
26         email_len=random.randint(6,12) #指定一个范围随机取整数
27         email_start=random.sample(string.ascii_letters+string.punctuation+string.digits,email_len) #sample()随机取几个元素,返回值是list  ‘‘.join() :list转字符串
28         email_end=random.choice((‘@163.com‘, ‘@qq.com‘, ‘@sina.com‘, ‘@126.com‘)) #随机取一个元素
29         #取到的邮箱号分别与大写、小写、数字、特殊字符取交集来判断是否同时包含了四种字符。
30         if set(email_start) & set(string.ascii_lowercase) and 31             set(email_start) & set(string.ascii_uppercase) and 32             set(email_start) & set(string.punctuation) and 33             set(email_start) & set(string.digits):
34             email=‘‘.join(email_start)+email_end+‘\n‘ #list转字符串
35             emails.add(email)
36     with open(‘user.txt‘,‘w‘) as fw:
37         fw.writelines(emails)

原文地址:https://www.cnblogs.com/you-me/p/10087686.html

时间: 2024-10-17 06:49:15

python-随机生成N条邮箱号的相关文章

python随机产生手机号和邮箱号

1.写个一函数,这个函数的功能是,传入一个数字,产生N条手机号,产生的手机号不能重复. [150,189,188,170,132,150,186] def phone(500): phone.txt 2.写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的手机号不能重复. 邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 [163.com,qq.com,sina.com,126.com] 1. def random_PhoneNumber(N): i

Mysql 高效随机生成N条记录

1 select *, rand() as random FROM yef_exercises where id not in(1) order by random limit 1 // Mysql Mysql 高效随机生成N条记录,布布扣,bubuko.com

用python随机生成数据,再插入到postgresql中

用python随机生成学生姓名,三科成绩和班级数据,再插入到postgresql中. 模块用psycopg2 random import random import psycopg2 fname=['金','赵','李','陈','许','龙','王','高','张','侯','艾','钱','孙','周','郑'] mname=['玉','明','玲','淑','偑','艳','大','小','风','雨','雪','天','水','奇','鲸','米','晓','泽','恩','葛','玄'

Python随机生成验证码的两种方法

Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法方法一:利用range Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法 方法一: 利用range方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # -*- coding: utf-8 -*- import random def generate_verification_c

python随机生成个人信息

python随机生成个人信息 #!/usr/bin/env python3 # -*- coding:utf-8 -*- import random import sys, pymysql import threading'''PyMySQL==0.9.3''' class PersonalInformation(): # 生成姓名 def Names_of_generated(self): list_Xing = [ '赵', '钱', '孙', '李', '周', '吴', '郑', '王'

Python随机生成指定长度字符串并保存到mysql中

网上看到一个python练习题,要随机生成8位数的优惠券,并希望能保存到mysql数据库中.自己查资料写了下面的一段代码完成这个小作业 #!/usr/bin/env python # -*- coding: utf-8 -*- #author qingmiao import MySQLdb as mdb import sys import random,string def random_code(code_length,code_long):     i=1     result = []  

python随机生成有效手机号码

#!/usr/bin/env python# -*- coding: utf-8 -*-# @author simpelzhuo import random class PhoneNOGenerator(): # 随机生成手机号码 def phoneNORandomGenerator(self): prelist=["130","131","132","133","134","135",

Python随机生成密码

废话不说,直贴代码 # coding:utf-8 """ Author : han Email : [email protected] Time : 2019-07-27 17:12 Home Team : Golden State Warriors 随机生成 密码 6位 ~ 20位 三个等级 """ import sys import random import string def main(d='6', level='1'): "

python随机生成6位数验证码

#随机生成6位数验证码 import randomcode = []for i in range(6):    if i == str(random.randint(1,5)):        code.append(i)    else:       temp =  random.randint(65,90)       code.append(chr(temp)) print ''.join(code) ###扩充random用法,随机生成树,和程序无关 print random.rando