需求:
随机取手机号
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 '%(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 ' % (phone_head, phone_end) # 08d取八位数字 23 phone_gather.add(phone) # 把获取到的手机号添加到集合里面 24 with open('user.txt', 'w') as fw: 25 fw.writelines(phone_gather)