(遷移)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----代碼層級