Python正课53 —— Random模块

本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12596968.html

一:基础

import random

print(random.random())                          # (1,3)--float 大于0 小于1 的小数

print(random.randint(1,3))                      # [1,3] 开区间 大于等于1 小于等于3 的整数

print(random.randrange(1,3))                    # [1,3) 大于等于1 小于3 的整数

print(random.choice([1,'a',[4,5]]))             # 1 或者 ‘a’ 或者 [4,5]

print(random.sample([111,'aaa','ccc','ddd'],2)) # 列表元素 任意2个组合

print(random.uniform(1,3))                      # 大于1 小于3 的小树

item = [1,3,5,7,9]
random.shuffle(item)    # 打乱item的顺序,相当于 “洗牌”
print(item)

二:应用:随机验证码

思路:

# import random
# res = ''
# for i in range(6):
    # 随机字符 = random.choice([从26个小写字母中随机抽取出一个,从10个数字中随机取出一个])
    # 从26个字母中随机抽取出一个 = chr(random.randint(65,90))
    # 从10个数字中随机取出一个 = str(random.randint(0,9))

    # 随机字符 = random.choice([从26个字母中随机抽取出一个,从10个数字中随机取出一个])
    # res += 随机字符

实现代码:

普通版:4位(大写字母+数字)

def make_code(size=4):  # 默认长度为4
    import random
    res = ''
    for i in range(size):
        s1 = chr(random.randint(65,90))     # ASCII码表中,65-90是A-Z
        s2 = str(random.randint(0,9))       # 随机整数0-9

        res += random.choice([s1,s2])
    return res

print(make_code())

升级版:6位(+小写字母+大写字母+数字)

def make_code_plus(size=6):  # 默认长度为6
    import random
    res = ''
    for i in range(size):
        s1 = chr(random.randint(65,90))     # ASCII码表中,65-90是A-Z
        s2 = chr(random.randint(97,122))     # ASCII码表中,97-122是a-z
        s3 = str(random.randint(0,9))       # 随机整数0-9

        res += random.choice([s1,s2,s3])
    return res

print(make_code_plus())
posted @ 2020-03-30 10:27  轻描丨淡写  阅读(293)  评论(0编辑  收藏  举报