随机数模块

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())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值