鹹魚micropython入門 函式

2021-10-06 08:23:26 字數 2572 閱讀 8696

函式,即是將一段**封裝起來,用來實現特定的功能。

除了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...