random模块是python的一个内置模块,主要用于生成随机数的,应用场景也很丰富,比如生产验证码,抽签功能等等,random模块中有丰富的api帮助我们处理一些从逻辑上很难实现的功能。
Python random模块简介
random 是 Python 内置的一个用于生成伪随机数的模块,通过该模块可以生成各种类型的随机数,例如整数、浮点数、随机序列等。在数据科学、计算机游戏开发、密码学等领域,随机数都有广泛的应用。
random 模块提供的函数可以分为两类:
- 生成随机数的函数,例如 random(), randint(a, b), uniform(a, b) 等。
- 对随机数序列进行操作的函数,例如 shuffle(seq), sample(population, k) 等。
下面是一些常用的函数:
- random() :返回一个0到1的随机浮点数。
- randint(a, b) :返回一个范围在 a 和 b 之间的随机整数,包括 a 和 b。
- uniform(a, b) :返回一个范围在 a 和 b 之间的随机浮点数。
- randrange(start, stop=None, step=1) :从 range(start, stop, step) 中随机选择一个整数返回。
- choice(seq) :从一个序列中随机选择一个元素返回。
- shuffle(seq) :将一个序列中的元素随机打乱,返回打乱后的序列。
- sample(population, k) :从一个序列中随机选择 k 个元素返回,不会改变原始序列。
Python random模块应用
以下是Python 的 random 模块一些常见的应用场景:
- 生成随机整数:使用 random.randint 函数可以生成指定范围内的随机整数,例如 random.randint(1, 10) 可以生成 1 到 10 之间的随机整数。
- 生成随机浮点数:使用 random.uniform 函数可以生成指定范围内的随机浮点数,例如 random.uniform(0, 1) 可以生成 0 到 1 之间的随机浮点数。
- 从列表中随机选择元素:使用 random.choice 函数可以从列表中随机选择一个元素,例如 random.choice([‘apple’, ‘banana’, ‘orange’]) 可以从列表中随机选择一个水果。
- 打乱列表元素顺序:使用 random.shuffle 函数可以打乱列表中元素的顺序,例如 fruits = [‘apple’, ‘banana’, ‘orange’]; random.shuffle(fruits) 可以打乱列表 fruits 中元素的顺序。
- 生成随机字符串:使用 random.choices 函数可以从指定的字符集中生成随机字符串,例如 random.choices(string.ascii_letters + string.digits, k=8) 可以生成一个包含大小写字母和数字的 8 位随机字符串。
Python random模块案例演示
下面是一个例子,展示如何使用 random 模块生成随机整数序列并对其进行操作:
1.用于生成一个0到1的随机浮点数
import random
print(random.random())
返回结果:0.5455657044367059
2.用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。
print(random.uniform(2, 3))
返回结果:2.657840899836785
3.用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
print(random.randint(3, 10))
返回结果:8
4.从指定范围内,按指定基数递增的集合中 获取一个随机数。(先从10到30,每隔2个数取值,然后从取值的结果随机取一个数)
print(random.randrange(10, 30, 2))
返回结果:14
5.从序列中获取一个随机元素。
list1 = ['python', 'C', 'C++', 'javascript']
print(random.choice(list1))
返回结果:javascript
6.将一个列表中的元素打乱,即将列表内的元素随机排列。
p = ['A', 'B', 'C', 'D', 'E']
random.shuffle(p)
返回结果:None
7.从指定序列中随机获取指定长度的片断并随机排列。
p = ['A', 'B', 'C', 'D', 'E']
print(random.sample(p, 3))
返回结果:[‘D’, ‘B’, ‘A’]
© 版权声明
THE END
暂无评论内容