函数,即是将一段代码封装起来,用来实现特定的功能。
函数定义
除了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