详解python random模块的常用函数

文章目录

  • 1. 导入random模块
  • 2. 常见函数
    • 2.1 random.choice
    • 2.2 random.randrange
      • 2.2.1 random.randrange()和random.randchoice()的关系
    • 2.3 random.randint
    • 2.4 random.shuffle
    • 2.5 random.sample
    • 2.6 random.random
    • 2.6 random.uniform
    • 2.7 random.seed

random是一个经常使用的模块,把常用的函数整理一下,区分一下。

1. 导入random模块

>>>import random

2. 常见函数

2.1 random.choice

随机返回非空序列中的一个元素。

  • random.choice(seq)
>>> lst = [1, 2, 3]
>>> random.choice(lst)
2

2.2 random.randrange

返回[start, stop)之间的一个随机数,step指定可选随机数的步长。

  • random.randrange(stop)
  • random.randrange(start, stop[, step])
>>> [random.randrange(5) for _ in range(10)]  # [0, 5)之间的随机数
[4, 1, 0, 1, 0, 4, 2, 4, 3, 4]

>>> [random.randrange(1, 5) for _ in range(10)]  # [1, 5)之间的随机数
[1, 4, 3, 2, 2, 4, 3, 2, 4, 2]

>>>>>> [random.randrange(0, 10, 3) for _ in range(10)]  # 指定步长之后产生的随机数只能在[0, 3, 6, 9,]中取得
[0, 9, 9, 0, 6, 6, 3, 6, 6, 3]


注:输入参数,返回值都是整型

2.2.1 random.randrange()和random.randchoice()的关系

  • random.randrange(),可以看成先生成一个序列range(start, stop, step),然后用random.choice()从中选择一个随机数。
random.randrange(0, 10, 3)
# 等价于
random.choice(range(0, 10, 3))  # range()生成了[0, 3, 6, 9]

2.3 random.randint

返回[a, b]之间的一个整数。

  • random.randint(a, b)
>>> [random.randint(0, 5) for _ in range(10)]  # 两个边界都可以取
[5, 0, 3, 5, 3, 0, 1, 1, 1, 3]

2.4 random.shuffle

随机打乱一个序列。

  • random.shuffle(seq)
>>> lst = [1, 2, 3]
>>> random.shuffle(lst)  # random.shuffle()直接作用于lst,无返回值
>>> lst
[1, 3, 2]

2.5 random.sample

从序列中随机挑选k个数,作为一个list返回。

  • random.sample(seq, k)
>>> lst = [i for i in range(10)]
>>> random.sample(lst, 3)
[9, 5, 4]

2.6 random.random

返回一个[0.0, 1.0)之间的浮点数。

  • random.random()
>>> random.random()
0.26480637373637905
  • 使用np.random.random(),得到random.random()矩阵
>>> import numpy as np
>>> np.random.random((2, 2))  # 指定形状
array([[0.20018354, 0.20222348],
       [0.89138798, 0.87710066]])

2.6 random.uniform

返回[a, b]之间的一个浮点数

  • random.uniform(a, b)
>>> random.uniform(1, 2)
1.5487841132956464

2.7 random.seed

设置一个随机数种子。

>>> random.seed(123)  # 在随机函数之前设置,以获得相同的随机值 
>>> random.randint(1, 5)
1
>>> random.seed(123)
>>> random.randint(1, 5)
1

你可能感兴趣的:(详解python random模块的常用函数)