(遷移)Python版本:數字0~9的增減、循環

之前的兩篇文章《A、B按鈕控制數字的增減、循環》和《(續篇)體感控制數字的增減、循環》,都是使用MakeCode圖形化編程語言實現功能的。其實,我們都清楚,文本型編程語言在處理較複雜的程序時,看上去邏輯反而更加清晰、明白。接下來,我們學習如何使用Python語言來編程實現:使用兩個按鈕A、B,或者使用三維加速度計,控制數字0~9的增減、循環。遷移到Python編程上,拓展一下如何使用Python給micro:bit編程的知識,這種感覺就像站在更高的地方,可以欣賞到更多的美景,非常快樂!不多說了,開始編程吧!

活動1 按鈕A控制數字0~9遞增、循環

from microbit import *i=0display.show(str(i))while True: if button_a.was_pressed(): i+=1 if i>9: i=0 display.show(str(i))

編程步驟:

01 導入microbit的一系列「功能」,如display(顯示)文本、表情圖片的功能。

from microbit import *

02 變數初始化。

i=0

03 在屏幕上顯示變數i,完成所有準備工作(實現按鈕交互前的初始化)。

display.show(str(i))

注意:這裡display.show(文本),括弧內顯示的是「文本」。因此需要將整數型變數i數據類型轉換成文本型,方法為str(i)。

04 加入無限循環,為了無限次、實時掃描按鈕A的狀態。

while True:

05 在循環結構中嵌入條件(分支)結構(嵌套),條件為當按鈕A被按下。

if button_a.was_pressed():

06 在分支結構中,要完成三件任務。

①變數i自增1,實現遞增。

i+=1

注意這裡不可以寫i++,C語言最熟悉的這種方法不可以用!

②再嵌入一個條件(分支)結構,用來完成數字的循環(不進位)

if i>9: i=0

這裡的條件i>9也可以改為i>=10,在整數情況下,兩者等價。

③顯示遞增後的數字結果。

display.show(str(i))

編程完畢,運行調試。

通過學習活動1,並且在之前已經學習了《A、B按鈕控制數字的增減、循環》和《(續篇)體感控制數字的增減、循環》的情況下,可以嘗試自己研究、編程實現活動2、活動3的功能效果。

活動2 按鈕A、B控制數字0~9的增減、循環

程序如下:

from microbit import *i=0display.show(str(i))while True: if button_a.was_pressed(): i-=1 if i<0: i=9 if button_b.was_pressed(): i+=1 if i>9: i=0 display.show(str(i))

活動3 體感(加速度計)控制數字0~9的增減、循環

程序如下:

from microbit import *i=0display.show(str(i))while True: if accelerometer.get_x()<-500: i-=1 if i<0: i=9 display.show(str(i)) sleep(500) elif accelerometer.get_x()>500: i+=1 if i>9: i=0 display.show(str(i)) sleep(500)

補充說明:

可以用

import microbit as m

替換

from microbit import *

import…as…的解釋說明:

import A as B

這句語句的意義為:給予A庫一個B的別稱,這是為了幫助程序員記憶。

當有了「別稱」後,接下來就會有形式上的區別:

用import A as x 替換 from A import b ,但接下來就要將原來的b就要寫成寫成x.b的形式了

improt A as m,形式就是m.b

可能這個內容有一些抽象、難於馬上理解,但基本上就是多一個別稱而已,通過看轉變後的程序,很快就能理解。

等價的程序如下:

import microbit as mi=0m.display.show(str(i))while True: if m.accelerometer.get_x()<-500: i-=1 if i<0: i=9 m.display.show(str(i)) m.sleep(500) elif m.accelerometer.get_x()>500: i+=1 if i>9: i=0 m.display.show(str(i)) m.sleep(500)

以後如果再看到有類似import…as…這句代碼,就知道大概是怎麼一回事了吧!


推薦閱讀:

mBlock & Arduino(9)舵機(Servo motor)控制
精簡封裝技巧5----函數指針_鬧鐘
學習單片機的過程
軟體工程結構2----代碼層級

TAG:Python | 單片機 | 創客 |