您可以使用随机模块在Python中生成随机数。
Python提供random了可以生成随机数的模块。
这些是伪随机数,因为生成的数字序列取决于种子。
如果种子值相同,则序列将相同。例如,如果使用2作为播种值,则将始终看到以下序列。
import random random.seed(2) print(random.random()) print(random.random()) print(random.random())
输出将始终遵循以下顺序:
0.9560342718892494 0.9478274870593494 0.05655136772680869
不是那么随便吧?由于此生成器是完全确定性的,因此不得将其用于加密目的。
这是随机模块中定义的函数列表,并简要说明了它们的作用。
| 功能 | 描述 |
|---|---|
| seed(a=None, version=2) | 初始化随机数生成器 |
| getstate() | 返回捕获生成器当前内部状态的对象 |
| setstate(state) | 恢复发生器的内部状态 |
| getrandbits(k) | 返回具有k个随机位的Python整数 |
| randrange(start, stop[, step]) | 返回范围内的随机整数 |
| randint(a, b) | 返回介于a和b之间的随机整数 |
| choice(seq) | 从非空序列返回一个随机元素 |
| shuffle(seq) | 随机序列 |
| sample(population, k) | 返回从填充序列中选择的唯一元素的ak长度列表 |
| random() | 返回范围为[0.0,1.0)的下一个随机浮点数 |
| uniform(a, b) | 返回介于a和b之间的随机浮点数 |
| triangular(low, high, mode) | 返回介于低和高之间的随机浮点数,并在这些边界之间指定模式 |
| betavariate(alpha, beta) | Beta分布 |
| expovariate(lambd) | 指数分布 |
| gammavariate(alpha, beta) | 伽玛分布 |
| gauss(mu, sigma) | 高斯分布 |
| lognormvariate(mu, sigma) | 对数正态分布 |
| normalvariate(mu, sigma) | 正态分布 |
| vonmisesvariate(mu, kappa) | Vonmises分布 |
| paretovariate(alpha) | 帕累托分布 |
| weibullvariate(alpha, beta) | 威布尔分布 |