加载中...

random模块

random随机模块

Python的random模块提供了一系列的随机数生成函数。

import random

random:

获取0-1之间的随机小数(左闭右开)

print(random.random())  # 输出:一个0-1之间的随机小数

randrange:

随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值)

print(random.randrange(3))  # 输出:0、1或2
print(random.randrange(3, 6))  # 输出:3、4或5
print(random.randrange(1, 9, 4))  # 输出:1或5
print(random.randrange(7, 3, -1))  # 输出:7、6、5或4

randint:

随机产生指定范围内的随机整数

print(random.randint(1, 3))  # 输出:1、2或3

uniform:

获取指定范围内的随机小数(左闭右开)

print(random.uniform(0, 2))  # 输出:一个0-2之间的随机小数
print(random.uniform(2, 0))  # 输出:一个0-2之间的随机小数
"""
源码解析
a = 2 , b = 0
return 2 + (0-2) * (0<=x<1)
x = 0 return 2 取到
x = 1 return 0 取不到
0 < x <= 2
return a + (b-a) * self.random()
"""

choice:

随机获取序列中的值(多选一)

lst = ["孙凯喜", "王永飞", "于朝志", "须臾间", "含税小"]
print(random.choice(lst))  # 输出:列表中的一个随机元素


#源码解析
def mychoice(lst):
    index_num = random.randrange(len(lst))
    return lst[index_num]
print(mychoice(lst))

# 使用lambda表达式改造choice函数
mychoice = lambda lst : lst[random.randrange(len(lst))]
print(mychoice(lst))

sample

随机获取序列中的值[返回列表]

tup = ("孙凯喜", "王永飞", "于朝志", "须臾间", "含税小")
print(random.sample(tup, 3))  # 输出:元组中的三个随机元素组成的列表

shuffle:

随机打乱序列中的值(需要可以修改的)

lst = ["孙凯喜", "王永飞", "于朝志", "须臾间", "含税小"]
random.shuffle(lst)
print(lst)  # 输出:随机打乱的列表

生成四位随机验证码(包含大写字母、小写字母和数字)

def yanzhengma():
    strvar = ""
    for i in range(4):
        b_c = chr(random.randrange(65, 91))  # 大写字母
        s_c = chr(random.randrange(97, 123))  # 小写字母
        num = str(random.randrange(10))  # 数字
        lst = [b_c, s_c, num]
        strvar += random.choice(lst)
    return strvar
print(yanzhengma())  # 输出:四位随机验证码
posted @ 2024-03-03 22:42  江寒雨  阅读(87)  评论(0)    收藏  举报