需求:
隨機取手機號
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)