美文网首页
random模块

random模块

作者: 阿登20 | 来源:发表于2020-08-25 17:51 被阅读0次

    random

    常用方法

    import random
    print(random.random())      (0,1)----float    大于0且小于1之间的小数
    print(random.randint(1,3))   获取一个范围内的随机数,包含首和末尾
    print(random.randrange(1,3))  获取一个范围内的随机数,不包含末尾
    print(random.randrange(0,10,2))   获取一个范围内的偶数
    print(random.random())   获得一个随机浮点数
    
    print(random.choice('qweqeqr123'))  获得字符串里的随机字符
    
    print(random.sample('qweqeqr123',2))  获得字符串里的指定个数的随机字符,并以列表的形式返回
    print(random.sample([1,'23',[4,5]],2))  列表元素任意2个组合
    print(random.uniform(1,3))  大于1小于3的小数,如1.927109612082716
    
    import string
    print(string.digits)  # 0123456789
    print(string.ascii_letters) # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    print(string.ascii_lowercase) # abcdefghijklmnopqrstuvwxyz
    print(string.ascii_uppercase) # ABCDEFGHIJKLMNOPQRSTUVWXYZ
    print(string.hexdigits) # 0123456789abcdefABCDEF
    print(string.punctuation) # !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    

    生成随机验证码:

    import string,random
    
    s = string.digits + string.ascii_lowercase # 整数和小写字母
    # print(random.sample(s,5)) # ['r', 'y', 'e', 'u', '6']
    print(''.join(random.sample(s,6))) # 93owzj
    # 随机验证码
    def make_code(n):
        s = string.digits + string.ascii_lowercase
        return "".join(random.sample(s,n))
    print(make_code(10))
    另一种方法
    给定验证码长度n,生成随机验证码,验证码由数字、字母组成(参考chr()内置方法)
    第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母
    97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
    def make_code(n):
        res=''
        for i in range(n):
            # s1=chr(random.randint(65,90))
            # s2=chr(random.randint(48,57))
            s1 = chr(random.randrange(65, 90,1))
            s2 = chr(random.randrange(97, 126, 1))
            # s2 = chr(random.randrange(48, 57,1))
            # s2 = str(random.randrange(0, 9, 1))
            s3 = str(random.randint(0, 9))
            res +=random.choice([s1,s2,s3])
        return res
    
    print(make_code(9)
    

    洗牌

    d = list(range(21))
    print(d) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    random.shuffle(d) # 洗牌
    print(d) # [7, 18, 1, 16, 3, 6, 2, 13, 19, 17, 9, 4, 10, 5, 20, 8, 0, 12, 14, 15, 11]
    

    相关文章

      网友评论

          本文标题:random模块

          本文链接:https://www.haomeiwen.com/subject/syvzjktx.html