函式,即是將一段**封裝起來,用來實現特定的功能。
除了micropython內建的函式,使用者也可以使用def語句自定義的函式。定義格式如下:
def
函式(引數1
, 引數2
, ……>):
函式..
.......
函式定義完成後,使用函式名來呼叫函式,從而使用其功能。
示例:
函式可以接收輸入的值,並利用這些值做一些事。
多個引數傳遞需要用逗號隔開。
在定義函式的過程中如果指定了引數,那麼呼叫函式時一定要給所有的引數傳遞值,否則會出錯。
但是在一些情況下,可能又希望它的引數是可選的,即不要求呼叫函式時一定要給所有引數都傳遞值,那麼可以通過預設值引數來完成。
示例:
在呼叫函式時,還可以使用另外一種方式給函式傳遞值,即使用引數的名字(關鍵字)而不是位置,這被稱為關鍵引數。
使用關鍵引數的優勢:不需要擔心引數順序,使函式呼叫更簡單。
return語句
return用來退出乙個函式,也可以使用return從函式返回乙個值,並且這個值可以賦給其他變數。
如果return語句沒有返回值,等價於return none,表示無返回值。如果函式中沒有明確指定return語句,都在結尾暗含有return none語句。
>>
>
defxy
(a,b):.
..if a>b:..
.return a..
.elif a<..>
.return b..
.else:.
..return
>>
> xy(5,
6)#a=5,b=6
6>>
> a=xy(5,
5)>>
>
print
(a)none
lambda表示式
lambda 表示式可以返回乙個函式,使用lambda表示式可明顯減少函式數量。定義格式如下:
lambda
引數1, 引數2
, ……>
:表達
示例:
>>
>
defxy
(n):..
.return
lambda x:x*n..
....
...>>
> a =xy(32)
#相當於n=32
>>
>
print
(a(3))
#相當於x=3
96
全域性變數
定義在整個檔案中但在函式外部,作用域為全域性範圍的變數稱為全域性變數。
如果需要在函式內使用全域性變數,同時又為全域性變數賦值,則使用global關鍵字來實現。
示例:
>>
> x =
0#宣告全域性變數
>>
>
defxy()
:...
global x #使用變數..
. x =15.
..print
(x)...
....
..>>
> xy()15
>>
>
print
(x)15
區域性變數
在函式定義內宣告的變數,只在當前函式內有效,即使函式外有同名變數存在,它們也沒有任何關係,這樣的變數稱為區域性變數。
示例:
>>
> x =
66#全域性變數
>>
>
defxy()
:... x =
6#區域性變數..
.print
(x)...
>>
> xy()6
>>
>
print
(x)66
關鍵字nonlocal的作用與關鍵字global類似,使用nonlocal關鍵字可以在乙個巢狀的函式中修改巢狀作用域中的變數。示例:
>>
>
defxy()
:... a =6.
..defxy2()
:...
nonlocal a
a *=6.
..print
(a)...
return xy2().
..>>
> xy(
)36
Micropython入門(一)常用控制命令講解
基本操作 命令列輸入的方法,使用putty軟體,選好com口及波特率使用9600,ctrl c進入命令列狀態即可。輸入完畢,執行按三次回車即可。引腳定義 方法 1 pin pin.cpu.a0 方法 2 pin x1 一 輸入端 y1 pin y1 pin.in 留意大小寫,主機板中的y1腳,設為輸...
micropython編譯流程
最近終於都考完了,雖然最近沒有發帖子,可是還是看了挺多東西的,都不深,就自己寫一點自己做的工作。root charles virtualbox media sf linux micropython master ports stm32 make use make v 1 or set build v...
了解MicroPython多執行緒
該模組提供了用於處理多個執行緒 也稱為輕量級程序或任務 的低階原語 多個控制線程共享其全域性資料空間。為 了同步,提供了簡單的鎖 也稱為互斥鎖或二進位制訊號量 發生執行緒特定錯誤時,會runtimeerror引發異常。快速使用示例 import thread import time def th f...