自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...
生活随笔
收集整理的這篇文章主要介紹了
自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫一個函數,這個函數的功能是,傳入一個數字,產生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条邮箱,产生的邮箱不能重复。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 循环控制-链表反转(与创建链表)
- 下一篇: Coursera, Big Data 1