MicroPython带有一个 random 随机模块,使您可以轻松地在您的代码中引入机会和一些混乱。
例如,以下是在显示屏上滚动随机名称的方法
from microbit import *
import random
names = ["Mary","Yolanda", "Damien", "Alia", "Kushal","Mei Xiu", "Zoltan" ]
display.scroll(random.choice(names))
列表(names)包含七个被定义为字符串的名称。最后一行是嵌套的(之前介绍的“洋葱”效果): random.choice 方法将名称(names)列表作为参数,并返回随机选择的项目。该项目(随机选择的名称)是display.scroll的参数。
您可以修改列表以包含您自己的一组名称。
Random Numbers
随机数非常有用。它们在游戏中很常见,比如掷骰子,可以参考之前用micro:bit做掷骰子的游戏。
MicroPython带有几个有用的随机数字方法。 以下是如何制作一个简单的骰子:
from microbit import *
import random
display.show(str(random.,randint(1,6)))
每次设备重置时,它会显示1到6之间的数字。您开始熟悉嵌套,所以重要的是要注意random.randint 在两个参数之间返回一个整数(包括整数)称为整数 – 因此称为方法的名称)。
请注意,因为display.show需要一个字符,所以我们使用str函数将数值转换成一个字符(我们把例如6 转换成“6″)。
如果你知道你总是想要一个0到N之间的数字,然后使用 random.randrange 方法。如果你给它一个参数,它将返回随机整数直到但不包括参数N的值(这与random.randint的行为不同)。
有时你需要一个小数点的数字。这些被称为浮点数,并且可以使用 random.random 方法生成这样一个数字。
这只能返回0.0 和1.0之间的值。如果需要较大的随机浮点数,则会添加random.randrange 和 random.random的结果,如下所示:
from microbit import *
import random
answer = random.randrange(100) +random.random()
display.scroll(str(answer))
随机数种子值
计算器使用的随机数发生器不是真正随机的。他们只给出一个给定一个起始种子值的随机结果。种子通常是从诸如当前时间和/或诸如内置于芯片中的温度计的传感器的读数的随机值产生的。
有时您想要具有可重复的随机行为:可重现的随机源。这就像说你每次掷骰子都需要相同的五个随机值。
这很容易通过设置种子值来实现。给定一个已知的种子,随机数生成器将创建相同的一组随机数。种子设置为random.seed 和任意整数(整数)。该版本的骰子程序总是产生相同的结果:
from microbit import *
import random
random.seed(1337)
while True:
if button_a.was_pressed():
display.show(str(random.randint(1, 6)))
这样你可以弄清楚为什么这个程序需要我们按按钮A,而不是像第一个骰子例子那样重置设备。