python-隨機生成N條手機號


 需求:
隨機取手機號
1、寫個一函數,這個函數的功能是,傳入一個數字,隨機生成N條手機號且這N條手機號不能重復
2、手機號前三位可以選擇150, 189, 188, 170, 132, 150, 186
3、生成的手機號寫入文件里
思路:
存入N條不重復的手機號:(兩種方法)
1)定義一個空的list准備存手機號,每次存入之前都判斷一下是否和list里面的手機號重復,用while循環,直到list中存夠了N條手機號則停止循環
2)定義一個空的集合,集合本身就是不重復元素序列,所以往集合里添加元素時自動去重,用while循環,直到集合中存夠了N條手機號則停止循環

注:while循環是當while后面的條件(表達式)為真,才執行while循環體內的while suite,直到條件為假時,退出循環。

 1 import random
 2 
 3 #方法一:把隨機生成的N條手機號存入列表里
 4 def phone(n):
 5     phone_list=[] #定義一個空的列表,存手機號
 6     while len(phone_list)!=n:
 7         phone_head=random.choice([150, 189, 188, 170, 132, 150, 186]) #隨機選擇一個元素作為手機號的前三位
 8         #phone_end=random.randint(10000000,999999999)#指定一個范圍,隨機取整數作為手機號的后八位
 9         phone_end=random.randint(0,999999999)
10         phone='%s%08d\n'%(phone_head,phone_end) #08d取八位數字
11         if phone not in phone_list:
12             phone_list.append(phone) #在list末尾增加一個元素
13     with open('user.txt','w') as fw:
14         fw.writelines(phone_list)
15 
16 #方法二:把隨機生成的N條手機號存入集合里
17 def phone2(n):
18     phone_gather=set()
19     while len(phone_gather)!=n:
20         phone_head = random.choice([150, 189, 188, 170, 132, 150, 186])  # 隨機選擇一個元素作為手機號的前三位
21         phone_end = random.randint(0, 999999999) #指定一個范圍,隨機取整數作為手機號的后八位
22         phone = '%s%08d\n' % (phone_head, phone_end)  # 08d取八位數字
23         phone_gather.add(phone)  # 把獲取到的手機號添加到集合里面
24     with open('user.txt', 'w') as fw:
25         fw.writelines(phone_gather)

 








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM