随机数模块

import random
取随机小数
print(random.random())  # 0.09762665916858027
print(random.uniform(2, 3))  # 2 到 3 的小数 # 2.0384358034492815

取随机整数
print(random.randint(1, 2))  # 1 或 2
print(random.randrange(1, 2))  # 只取1

从一个列表中随机抽取
lst = [1, 2, 3, 4, 5, ('a', 'b'), 'cc', 'dd']
ret = random.choice(lst)  # 选一个
print(ret)  # 打印的结果是每个列表中元素取值的概率相等

ret = random.sample(lst, 3)  # 选三个,形成一个列表
print(ret)

乱序
lst = [1, 2, 3, 4, 5, ('a', 'b'), 'cc', 'dd']
random.shuffle(lst)  # 改变了原列表的顺序,可以节省内存
print(lst)  # [4, ('a', 'b'), 'cc', 3, 5, 2, 'dd', 1]

验证码
6位数字验证码
print(random.randint(100000, 999999))
def get_code(n = 6):
    code = ''
    for i in range(n):
        num = random.randint(0, 9)
        code += str(num)

    return code
ret1 = get_code()
ret2 = get_code(4)
print(ret1, ret2)  # 234410 3381

请生成一个6位验证码(数字和字母)
字母怎么生成 chr(65)  # 'A'
print(chr(65))
生成一个随机字母
65 - 90 :A - Z
num = random.randint(65, 90)
print(chr(num))
97 - 122 : a - z
num = random.randint(97, 122)
print(chr(num))

每一位上出现的内容既可以是数字,也可以是字母
随机生成一个数字,一个大写字母,一个小写字母
def get_code(n):
    code = ''
    for i in range(n):
        num = str(random.randint(0, 9))
        alpha_upper = chr(random.randint(65, 90))
        alpha_lower = chr(random.randint(97, 122))
        c = random.choice([num, alpha_upper, alpha_lower])
        code += c
    return code
ret = get_code(6)
print(ret)


6位数验证码(字母,数字)
第一种方法
def get_code(n=6, alph_flag=True):
    code = ''
    for i in range(n):
        c = str(random.randint(0, 9))
        if alph_flag:
            alpha_upper = chr(random.randint(65 , 90))
            alpha_lower = chr(random.randint(97, 122))
            c = random.choice([c, alpha_upper, alpha_lower])
        code += c
    return code
ret = get_code()
print(ret)

第二种方法
def get_code(n=6):
    li1 = [i for i in range(10)]
    li2 = [chr(i) for i in range(65, 90)]
    li3 = [chr(i) for i in range(97, 122)]
    li = li1 + li2 + li3
    code = ''
    for i in range(6):
        c = random.choice(li)
        code += str(c)
    return code
print(get_code())

猜你喜欢

转载自blog.csdn.net/weixin_42233629/article/details/82386548