ESP32 常用的模块 3.1.17 random

2020-06-018457
AI 快速预览详细 收起
本文介绍了ESP32中MicroPython的random模块,包括常用的随机数生成函数。例如,randint(start, end)生成指定范围内的整数,random()生成0到1之间的浮点数,uniform(start, end)生成指定范围内的浮点数,getrandbits(size)生成指定位数的二进制随机数,randrange(start, end, step)生成指定步长的随机数,seed(sed)设置随机数种子,choice(obj)从列表中随机选择一个元素。通过具体示例,读者可以轻松掌握这些函数的用法。

函数

1.randint(start, end)

函数说明:随机生成一个start到end之间的整数。

start:指定范围内的开始值,包含在范围内
stop:指定范围内的结束值,包含在范围内

示例:

>>> import random
>>> print(random.randint(1, 4))
4
>>> print(random.randint(1, 4))
2

2. random()

函数说明:随机生成一个0到1之间的浮点数。
示例:

>>> print(random.random())
0.7111824
>>> print(random.random())
0.3168149

3. random.unifrom(start, end)

函数说明:随机生成start到end之间的浮点数。

start:指定范围内的开始值,包含在范围内
stop:指定范围内的结束值,包含在范围内

示例:

>>> print(random.uniform(2, 4))
2.021441
>>> print(random.uniform(2, 4))
3.998012

4. random.getrandbits(size)

函数说明:随机生成 0 到 size 个位二进制数范围内的正整数。
比如
size = 4,那么便是从 0 到0b1111中随机一个正整数。
size = 8,那么便是从 0 到 0b11111111中随机一个正整数。

size:位大小

示例:

>>> print( random.getrandbits(1))  #1位二进制位,范围为0~1(十进制:0~1)
1
>>> print(random.getrandbits(1))
0
>>> print(random.getrandbits(8))  #8位二进制位,范围为0000 0000~1111 11111(十进制:0~255)
224
>>> print(random.getrandbits(8))
155

5. random.randrange(start, end, step)

函数说明:随机生成start到end并且递增为 step 的范围内的正整数。例如,randrange(0, 8, 2)中,随机生成的数为0、2、4、6中任一个。

start:指定范围内的开始值,包含在范围内
stop:指定范围内的结束值,包含在范围内
step:递增基数

示例:

>>> print(random.randrange(2, 8, 2))
4
>>> print(random.randrange(2, 8, 2))
6
>>> print(random.randrange(2, 8, 2))
2

6. random.seed(sed)

函数说明:指定随机数种子,通常和其他随机数生成函数搭配使用。
注意:
MicroPython中的随机数其实是一个稳定算法得出的稳定结果序列,而不是一个随机序列。sed就是这个算法开始计算的第一个值。所以就会出现只要sed是一样的,那么后续所有“随机”结果和顺序也都完全一致。

sed:随机数种子

示例:

import random

for j in range(0, 2):
  random.seed(13)  #指定随机数种子
  for i in range(0, 10):  #生成0到10范围内的随机序列
    print(random.randint(1, 10))
  print("end")
运行结果:
5
2
3
2
3
4
2
5
8
2
end
5
2
3
2
3
4
2
5
8
2
end

从上面可以看到生成两个随机数列表是一样的,你也可以多生成几个随机数列表看看。另外当我们不用seed(sed)函数时,相当于没有指定随机种子,这样就是随机生成的。

7. random.choice(obj)

函数说明:随机生成对象obj中的元数。

obj:元数列表

示例:

>>> print(random.choice("DFRobot"))
R
>>> print(random.choice("DFRobot"))
D
>>> print(random.choice([0, 2, 4, 3]))
3
>>> print(random.choice([0, 2, 4, 3]))
3
>>> print(random.choice([0, 2, 4, 3]))
2

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
gada888
gada888
python简单
- 没有更多了 -