欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-15 15:09:25
python案例之随机产生固定要求的一串号码代码如下:#导入包import randomfirst = 1#随机产生多少个号码函数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)[rando...

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

相关标签: 笔记 python