# 需求:#         1、写个一函数,这个函数的功能是,传入一个数字,产生N条手机号,产生的手机号不能重复。#         [150,189,188,170,132,150,186]#         def phone(500):#             phone.txt#             1861232323#             23423423做题思路1.传一个数,需要调用函数时入参def phone(number):2.生成n条手机号,需要用输入的参数做判断,i = 0 while i < number:以此来做判断需要循环生成多少个手机号3.因手机号开头是固定的,需要导入random模块,使用random.choice()方法,从指定的list内随机取4.手机号共11位,前三位从list中取,后8位生成随机数random.randint(10000000, 99999999)5.因要判断生成的手机号是否重复,所以将所有生成的手机号都放在list中,以此方便判断手机号是不是在list内存在(not in或in)6.如果生成手机号又重复的可能性,所以用while判断的方法用来循环生成手机号,不重复则将变量值+1,重复则将变量值还取原来的数值,重新再执行一遍7.将手机号写入文件时要放在while循环外面,否则写入的将是重复的 
 # def phone(number):#     num_l=['150','189','188','170','132','186']#     phones=[]#     i = 0#     while i < number:  #while len(phones)!=number  如果产生重复的,用需要的电话个数和生成的个数做对比#         t = i#         import random#         h = random.randint(0, 99999999)   #需要取8位,取到少于位数的需要补0#         p = random.choice(num_l)   #字符串可以直接用加好连接#         phone = '%sd' % (p, h)  #phone = '%sd' % (p, h) 意思为长度为8的整数;如果产生的随机数不够8位,就补0,补齐8位#         if phone not in phones:  #可以用集合,自动过滤重复的数据,同时产生条数可以和需要条数做对比,如果不等就继续循环取值#             phones.append('%s%s\n' % (p, h))#             i += 1#         else:#             i = t#     with open('phone.txt', 'a+', encoding='utf-8') as fr:#         fr.writelines(phones)#         fr.seek(0)#         content = fr.read()#         return content## phones=phone(2)# print(phones)#另外一种判断重复的办法# phones=()  #集合有自动去除重复的特性# while len(phones)!=number  #当集合的长度不等于输入的生成号码数,就继续循环 
 
 
  
  
 
 
转载于:https://www.cnblogs.com/hehetian/p/10051883.html