python案例之随机产生固定要求的一串号码

案例背景
第一位:1
第二位:3,4,5,7,8
第三位: 13 【0-9】
14 [5,7,9]
15 [0-9] !=4
17 [0-9] !=4and 9
18 [0-9]

代码如下:

#导入包
import random
#随机产生多少个号码函数
def create_phone(num):
    total=[]
    for n in range(0,num):
        #第二位
        second=[3,4,5,7,8][random.randint(0,4)]
        #第三位
        third={ 
            3:range(0,10)[random.randint(0,9)],
            4:[5,7,9][random.randint(0,2)],
            5:[value5 for value5 in range(0,10) if value5!=4][random.randint(0,8)],
            7:[value7 for value7 in range(0,10) if value7!=4 and value7!=9 ][random.randint(0,7)],
            8:random.randint(0,9)
        }[second]
        #最后8位,随机产生
        last=''
        for i in range(0,8):
            aa=str(random.randint(0,9))
            last=last+aa
            #i=i+1
        #拼接成最后的号码
        phone='1{}{}{}'.format(second,third,last)
        
        #判断生成的号码是否与之前随机生成的重复
        for pn in range(0,len(total)):
            if total[pn]==phone:
                continue
            #else:
                #pn=pn+1 
        #list追加不需要重新复制,如写成total=total.append(phone) 则会报错NoneType
        total.append(phone)
        #num=num+1
    return total
    #测试
create_phone(10)

备注:注意区分for循环个while循环,for i in range(10)时,循环内部不需要再加上 i=i+1

本文地址:https://blog.csdn.net/weixin_41797985/article/details/110429964