micropython是啥 知乎_micropython入门教程
目錄
1、microPython簡介
Damien George是一名計算機工程師,他每天都要使用Python語言工作,同時也在做一些機器人項目。有一天,他突然冒出了一個想法:能否用Python語言來控制單片機,進行實現(xiàn)對機器人的操控呢?
要知道,Python是一款比較容易上手的腳本語言,而且有強大的社區(qū)支持,一些非計算機專業(yè)領(lǐng)域的人都選它作為入門語言。遺憾的是,它不能實現(xiàn)一些非常底層的操控,所以在硬件領(lǐng)域并不起眼。
Damien為了突破這種限制,他花費了六個月的時間來打造Micro Python。它基于ANSI C,語法跟Pyton 3基本一致,擁有自家的解析器、編譯器、虛擬機和類庫等。目前他支持很多32-bit處理器,比如說STM32系列,esp8266,esp32,rtl8195a,nrf51822等。
借助Micro Python,用戶完全可以通過Python腳本語言實現(xiàn)硬件底層的訪問和控制,比如說控制LED燈泡、LCD顯示器、讀取電壓、控制電機、訪問SD卡、訪問網(wǎng)絡(luò)、訪問藍牙、讀取傳感器等。
2、本文目標
閱讀本文后,可以對micropython有個初步了解,主要涉及變量數(shù)據(jù)類型和基礎(chǔ)語法。為了防止枯燥,深入的語法內(nèi)容我們會結(jié)合后面的例子給大家詳細講解,建議手動敲入代碼進行實際操作,以加深理解。
3、變量數(shù)據(jù)類型
字符型
字符型是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。' '或 " "本身只是一種表示字符的符號,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。如果'本身也是一個字符,那就可以用""括起來,比如"I'm
OK"包含的字符是I,',m,空格,O,K這6個字符,示例:
>>>str=“hello DFRobot”
>>>Print(str)
hello DFRobot
str是定義的一個字符串變量并賦值為hello
DFRobot,然后輸出該字符串。
布爾類型
一個布爾值只有兩種值,要么是True 、要么是False(注意首字母大寫)。
應(yīng)用例子:
>>>True
True
>>>3>2
True
>>>5>7
False
and運算是與運算,只有所有都為True,and運算結(jié)果才是True
>>>True
and True
True
>>>True
and False
False
or運算是或運算,只要其中有一個為True,or運算結(jié)果就是True
>>>True
or True
True
>>>True
or False
True
not運算是非運算,它是一個單目運算符,把True變成False,False變成True
>>>not True
False
>>>not 1>5
True
布爾值經(jīng)常用在條件判斷中,eg:
>>>def int(age):
if age>=18:
print(‘a(chǎn)dult’)
else:
print(‘teenager’)
整型
創(chuàng)建一個新整型變量和給變量賦值是相同的過程,a = 123 或 b = -123 等號左邊是變量名,右邊是要賦的值,就是這么簡單。自然賦值時候的數(shù)據(jù)要是整數(shù)才行,整數(shù)簡單理解為(正整數(shù)和負整數(shù)),micropython目前可以支持的整型數(shù)據(jù)類型變量前的操作符有:加(+)、減(-)、乘(×)、除(/)和冪(**)。
浮點型
浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù),是因為按照科學(xué)記數(shù)法表示時,一個浮點數(shù)的小數(shù)點位置是可變的,比如,1.23×109和12.3×108是完全相等的。浮點數(shù)可以用數(shù)學(xué)寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數(shù),就必須用科學(xué)計數(shù)法表示,把10用e替代,1.23×109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。如果以上你不能理解,那么就一句話---浮點數(shù)就是不精確的小數(shù)。浮點數(shù)運算可能會有四舍五入的誤差。
>>>pi=3.14
>>>print(pi)
3.14
在不同的平臺下(比如:esp32、esp8266、ameba等),輸出的π值可能會不同。
元組(Tuple)
tuple是一種有序列表,tuple和list非常類似,但是tuple一旦初始化就不能修改,顯示只有1個元素的tuple時,會加一個逗號。eg:
>>>t=(1,)
>>>t
(1,)
如上我們定義的就是一個tuple,t=(1,)。
如果沒有逗號,這定義的就不是tuple,eg:
>>>t=(1)
>>>t
1
當把兩個元祖合在一起輸出時,它的輸出結(jié)果是兩個元祖所有的元素,eg:
>>>t1=(1,2,3)
>>>t2 = (4,5,6)
>>>Print(t1+t2)
(1,2,3,4,5,6)
列表(List)
list內(nèi)容可更改,list是一種有序的集合,可以隨時添加和刪除其中的元素
>>>l=[1,2,3,4]
>>>print(l)
[1,2,3,4]
定義一個l=[1,2,3,4]的list,
變量l就是一個list,用len()函數(shù)可以獲得list元素的個數(shù)
>>>len(l)
4
用索引來訪問list中每一個位置的元素,記得索引是從0開始的。
>>>l[2]
3
>>>l[0]
1
要把某個元素替換成別的元素,可以直接賦值給對應(yīng)的索引位置。
>>>l[1]=9
>>>print(l)
[1,9,3,4]
list是一個可變的有序表, 可以把元素插入到指定的位置,比如索引號為1的位置,insert(i,x)在位置i插入x,其余元素向后推,如果i大于列表長度,就在最后添加,如果i小于0,就在最開始添加。
>>>l.insert(1,6)
>>>print(l)
[1,6,2,3,4]
要刪除指定位置的元素,用pop(i)方法,其中i是索引位置。
>>>l.pop(2)
3
>>>print(l)
[1,2,4]
字典(Dict)
microPython內(nèi)置了字典:dict的支持,dict全稱dictionary,在C++和java等其他語言中也稱為map,使用鍵-值(key-value)存儲,一般在內(nèi)存中以紅黑樹方式存儲,具有極快的查找速度。
>>>d={‘df’:4, ’yu’:18, ’wu’:15}
>>>d[‘yu’]
18
dict指的是字典,而在使用的時候,如果我們直接用dict來表示字典,這樣顯得有點麻煩,所以我們就用d來代表dict,當然如果覺得不麻煩,也可以直接用dict。
把數(shù)據(jù)放入dict的方法,除了初始化時指定外,還可以通過key放入:
>>>d[‘li’]=12
>>>d=[‘li’]
12
由于一個key只能對應(yīng)一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉
>>>d[‘jack’]=10
>>>d[‘jack’]
10
>>> d[‘jack’]=9
>>> d[‘jack’]
9
要刪除一個key,用pop(key)方法,對應(yīng)的value也會從dict中刪除
>>>d.pop(‘yu’)
18
>>>d
{‘df’:4’, ’wu’:15}
引用
對于不可變的對象(包括:int、字符串(string)、float、(數(shù)值型number)、元組),a作為b的一個拷貝被創(chuàng)建,a和b將指向不同的內(nèi)存地址,a和b相互獨立,
eg:
>>>a=”I am ouki”
>>>b=a
>>>print(b)
I am ouki
>>>a=”hello DFRobot”
>>>Print(b)
I am ouki
我們定義a=” I am ouki”,然后把a的值賦給b,輸出b的值就是I am ouki,此時a的值依然是I am ouki,我們再給a賦一個新的值a=”hello
DFRobot”,然后我們再來輸出b,b的值不會改變,依然是I am ouki。
對于可變的對象(包括:字典型(dictionary)、列表型(list)),a作為b的一個引用被創(chuàng)建,a和b的元素公用相同的內(nèi)存地址,a和b的元素共享。
4.基礎(chǔ)語法
分號和冒號
每行不需要寫分號結(jié)束,和其他語言有些不一樣。當然,你寫分號也沒有問題,對于條件和函數(shù),后面要緊跟冒號。如果在條件和函數(shù)后沒有緊跟冒號,就會報如下錯誤:
循環(huán)
for循環(huán)
for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串,for循環(huán)的語法格式如下:
for
iterating_var in sequence:
statements(s)
eg:
>>>for i in range(5):
. . . print(i)
0
1
2
3
4
while循環(huán)
while 語句用于循環(huán)執(zhí)行程序,即在某條件下,循環(huán)執(zhí)行某段程序,以處理需要重復(fù)處理的相同任務(wù)。其基本形式為:
while
判斷條件:
執(zhí)行語句….
eg:
>>>i=9
>>>while(i>0):
. . . print(i)
. . . i-=1
9
8
7
6
5
4
3
2
1
執(zhí)行語句可以是單個語句或語句塊。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。當判斷條件假false時,循環(huán)結(jié)束。
函數(shù)
在microPython中,定義一個函數(shù)要使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回。我們以自定義一個求絕對值的my_abs和一個求和的add函數(shù)為例。
>>>def my_abs(x):
. . . if x>=0:
. . . return x
. . . else:
. . . return -x
. . .
>>>my_abs(5)
5
>>>my_abs(-6)
6
函數(shù)定義結(jié)束后需要按兩次回車重新回到>>>提示符下:
>>>def add(a,b):
. . . retrun a+b
. . .
>>>add(4,2)
6
總結(jié)
以上是生活随笔為你收集整理的micropython是啥 知乎_micropython入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言语句快的标记是什么_一文
- 下一篇: python3默认使用的编码是_pyth