鹹魚micropython入門—函數


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


函數定義

除了MicroPython內建的函數,用戶也可以使用def語句自定義的函數。定義格式如下:

 def <函數名> (<參數1, 參數2, ……>) :
    <函數體>
      ...
      ...
      ...

示例:
在這裏插入圖片描述

函數調用

函數定義完成後,使用函數名來調用函數,從而使用其功能。
示例:
在這裏插入圖片描述

函數參數

函數可以接收輸入的值,並利用這些值做一些事。
多個參數傳遞需要用逗號隔開。
在這裏插入圖片描述

默認值參數

在定義函數的過程中如果指定了參數,那麼調用函數時一定要給所有的參數傳遞值,否則會出錯。
但是在一些情況下,可能又希望它的參數是可選的,即不要求調用函數時一定要給所有參數都傳遞值,那麼可以通過默認值參數來完成。
示例:
在這裏插入圖片描述

關鍵參數

在調用函數時,還可以使用另外一種方式給函數傳遞值,即使用參數的名字(關鍵字)而不是位置,這被稱爲關鍵參數。
使用關鍵參數的優勢:不需要擔心參數順序,使函數調用更簡單。
在這裏插入圖片描述

return語句

return用來退出一個函數,也可以使用return從函數返回一個值,並且這個值可以賦給其他變量。
如果return語句沒有返回值,等價於return None,表示無返回值。如果函數中沒有明確指定return語句,都在結尾暗含有return None語句。

>>> def xy(a,b):
...     if a>b:
...         return a
...     elif a<b:
...         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, ……> : <表達式>

示例:

>>> def xy(n):
...     return lambda x:x*n
...     
...     
... 
>>> a =xy(32)      #相當於n=32
>>> print(a(3))	   #相當於x=3
96
全局變量

定義在整個文件中但在函數外部,作用域爲全局範圍的變量稱爲全局變量。
如果需要在函數內使用全局變量,同時又爲全局變量賦值,則使用global關鍵字來實現。
示例:

>>> x = 0        #聲明全局變量
>>> def xy():
...     global x #使用變量
...     x = 15
...     print(x)
...     
...     
... 
>>> xy()
15
>>> print(x)
15
局部變量

在函數定義內聲明的變量,只在當前函數內有效,即使函數外有同名變量存在,它們也沒有任何關係,這樣的變量稱爲局部變量。
示例:


>>> x = 66     #全局變量
>>> def xy():
...   x = 6    #局部變量
...   print(x)
... 
>>> xy()
6
>>> print(x)
66

關鍵字nonlocal的作用與關鍵字global類似,使用nonlocal關鍵字可以在一個嵌套的函數中修改嵌套作用域中的變量。

示例:

>>> def xy():
...     a = 6
...     def xy2():
...         nonlocal a
			a *= 6 
...         print(a)
...     return xy2()
... 
>>> xy()
36	
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章