zoukankan      html  css  js  c++  java
  • 随机产生一个手机号,保证不重复

    import random
    import os.path
    
    def get_mobile_no(mobile_no_file_path):
    
        mobile_no =""
        prifix =[135,136,137,138,150,159,188]
    
        while 1:
    #随机选择一个开头 mobile_prifix
    =random.choice(prifix)
    #随机生成后八位 mobile_postfix
    =random.randint(10000000,99999999)
    #拼接 mobile_no
    =str(mobile_prifix)+str(mobile_postfix)
    #判断文件是否存在
    try: with open(mobile_no_file_path,"a+") as fp:
    #判重逻辑
    if mobile_no in fp.read(): continue
    #写入文件 fp.write(mobile_no+" ") break except Exception as e: with open("no.txt","a+") as fp: if mobile_no in fp.read(): continue fp.write(mobile_no+" ") break return mobile_no print(get_mobile_no("d:\no2.txt"))

    生成八位随机数也可以用zfill

    Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

    代码改动:

    import random
    import os.path
    
    def get_mobile_no(mobile_no_file_path):
    
        mobile_no =""
        prifix =[135,136,137,138,150,159,188]
    
        while 1:
            mobile_prifix =random.choice(prifix)
            mobile_postfix =str(random.randint(0,99999999)).zfill(8)#从0开始,用zfill生成八位数
            mobile_no =str(mobile_prifix)+str(mobile_postfix)
            try:
                with open(mobile_no_file_path,"a+") as fp:
                    if mobile_no in fp.read():
                        continue
                    fp.write(mobile_no+"
    ")
                    break
            except  Exception as e:
                with open("no.txt","a+") as fp:
                    if mobile_no in fp.read():
                        continue
                    fp.write(mobile_no+"
    ")
                    break
        return mobile_no
    
    print(get_mobile_no("d:\no2.txt"))

    遗留问题:用列表序列化做?

  • 相关阅读:
    Docker 容器知识点
    Docker 常用命令
    杜教筛
    后缀自动机相关
    期望DP
    从零开始的莫比乌斯反演(函数)[详细推导]
    欧拉函数|(扩展)欧拉定理|欧拉反演
    优美诗词(持续更新)
    魔法 [线段树优化DP]
    stone2 [期望]
  • 原文地址:https://www.cnblogs.com/wenm1128/p/10673388.html
Copyright © 2011-2022 走看看