1、函数定义
除了MicroPython内建的函数,用户也可以使用def语句自定义的函数。定义格式如下:
def <函数名> (<参数1, 参数2, ……>) :
<函数体>
...
...
...
示例:
>>> def my_print():
... print("hello world!")
...
>>>
2、函数调用
函数定义完成后,使用函数名来调用函数,从而使用其功能。
示例:
>>> def my_abs(x): #求x的绝对值
>>> if x >= 0:
>>> return x
>>> else:
>>> return -x
...
...
...
>>> a = my_abs(-5)
>>> print(a)
5
3、函数参数
函数可以接收输入的值,并利用这些值做一些事。
多个参数传递需要用逗号隔开。
示例:
>>> def print_max(a, b):
... if a > b:
... return a
... else:
... return b
...
...
...
>>> a = print_max(4, 6)
>>> print(a)
6
4、默认值参数
在定义函数的过程中如果指定了参数,那么调用函数时一定要给所有的参数传递值,否则会出错。
但是在一些情况下,可能又希望它的参数是可选的,即不要求调用函数时一定要给所有参数都传递值,那么可以通过默认值参数来完成。
示例:
>>> def say_message(message, times=2):
... print(message*times)
...
>>> say_message("hello", 3)
hellohellohello
>>> say_message("look")
looklook
5、关键参数
在调用函数时,还可以使用另外一种方式给函数传递值,即使用参数的名字(关键字)而不是位置,这被称为关键参数。
使用关键参数的优势:不需要担心参数顺序,使函数调用更简单。
示例:
>>> def print_abc(a, b, c):
... print(a, b, c)
...
>>> print_abc(1,2,4)
1 2 4
>>> print_abc(c=4, b=2, a=1) #使用关键参数
1 2 4
6、return语句
return用来退出一个函数,也可以使用return从函数返回一个值,并且这个值可以赋给其他变量。
如果return语句没有返回值,等价于return None,表示无返回值。如果函数中没有明确指定return语句,都在结尾暗含有return None语句。
示例:
>>> def print_max(x, y):
>>> if x > y:
>>> return x
>>> elif x < y:
>>> return y
>>> else:
... return
...
...
...
>>> print_max(5, 3)
5
>>> print_max(5, 5)
>>> a = print_max(5, 5)
>>> print(a)
None
7、lambda表达式
lambda 表达式可以返回一个函数,使用lambda表达式可明显减少函数数量。定义格式如下:
lambda <参数1, 参数2, ……> : <表达式>
示例:
>>> def make_incrementor(n):
... return lambda x : x+n
...
>>> f = make_incrementor(32)
>>> print(f(3))
35
>>> sum = lambda x,y : x+y
>>> print(sum(32, 3))
35