一、概述
在 Python 中,random
是一个内置模块,用于生成随机数。它提供了各种用于生成随机数的函数,包括伪随机数生成器、随机序列操作等。
1、需要导包
不会自动导入,需要显示的将random模块导入
import random
2、源码分析(以shuffle方法为例)
二、随机数生成器函数
1、random()
:返回一个范围在 [0.0, 1.0)
之间的随机浮点数。
类型:def random(self) -> float: ...
import random
print(random.random()) #0.629683841585128
2、randint(a, b)
:返回一个范围在 [a, b]
之间的随机整数。
类型:def randint(self, a: int, b: int) -> int: ...
import random
print(random.randint(1,10)) #5
3、uniform(a, b)
:返回一个范围在 [a, b]
之间的随机浮点数。
类型:def uniform(self, a: float, b: float) -> float: ...
import random
print(random.uniform(1,10)) #3.4924458384182833
4、randrange(start, stop[, step])
:返回指定范围内的随机整数。step
参数表示步长。
类型:def randrange(self, start: int, stop: int | None = ..., step: int = ...) -> int: ...
import random
print(random.randrange(5,20,2)) #11
三、随机序列操作
1、choice(seq)
:从列表中随机选择一个元素并返回。
源码:
def choice(self, seq):
"""Choose a random element from a non-empty sequence."""
try:
i = self._randbelow(len(seq))
except ValueError:
raise IndexError('Cannot choose from an empty sequence') from None
return seq[i]
用法:
import random
# 从序列中随机选择元素
fruits = ['apple', 'banana', 'cherry']
print(random.choice(fruits)) #banana
2、sample(population, k)
:从序列中随机选择 k
个独立的元素,返回一个列表。
类型:
def sample(self, population: Sequence[_T], k: int, *, counts: Iterable[int] | None = ...) -> list[_T]: ...
import random
fruits = ['apple', 'banana', 'cherry',3,4,5]
# 从序列中随机选择多个元素
print(random.sample(fruits, 2)) #[3, 'banana']
3、shuffle(x)
:将序列中的元素随机打乱(就地操作)。
类型:def shuffle(self, x: MutableSequence[Any]) -> None: ...
import random
fruits = ['apple', 'banana', 'cherry',3,4,5]
# 将序列中的元素随机打乱
random.shuffle(fruits)
print(fruits)
四、随机种子设置:
1、seed(a=None, version=2)
:设置随机数生成器的种子。如果不设置种子,生成的随机数会基于系统时间。
数字不同,种子不同,每一颗种子相当于把随机数给固定了
import random
random.seed(12)
print(random.random()) #0.4745706786885481