Microbit Python 課程介紹 --Random
2017-07-03 11:27有時你想讓事情有機會,或者混合一點:你想讓設備隨機行動。
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
隨機數非常有用。 它們在遊戲中很常見。 為什麼我們有骰子?
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))
Seeds of Chaos
計算機使用的隨機數發生器不是真正隨機的。 他們只給出一個給定一個起始種子值的隨機結果。 種子通常是從諸如當前時間和/或諸如內置於芯片中的溫度計的傳感器的讀數的隨機值產生的。
有時您想要具有可重複的隨機行為:可重現的隨機源。 這就像說你每次擲骰子都需要相同的五個隨機值。
這很容易通過設置種子值來實現。 給定一個已知的種子,隨機數生成器將創建相同的一組隨機數。 種子設置為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,而不是像第一個骰子例子那樣重置設備。
Microbit 中文 課程 : Python , Javascript, 物聯網
標籤:
—————