首先我们来认识一下函数。函数是一段具有特定功能的,可重用的语句组,用函数名来表示并通过函数名进行功能调用。函数也可以看作是一段具有名字的子程序,可以在需要的地方调用执行,不需要在每个执行的地方重复编写这些语句。每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应的处理结果。
使用函数的优点有以下几点:(1)防止代码冗余;(2)防止组织结构不清晰,代码可读性差;(3)若不使用则对代码的管理维护的难度极大。
函数的使用必须先定义后使用。Python中函数的语法形式如下:
def 函数名(参数1,参数2,......):
代码块1
代码块2
代码块3
return 值
关于语法形式的解释如下:
def:定义函数的关键字
函数名:是用来调用函数的,函数名的命名必须能反映出函数的功能
代码块:函数的功能,用来实现代码
return:函数的返回值。当需要返回值时,使用保留字return和返回值列表,否则函数可以没有return语句,在函数体结束位置将控制权返回给调用者。
下面我们通过一个实例来加深理解:
过生日时要为朋友唱生日歌,歌词为:
Happy birthday to you!
Happy birthday to you!
Happy birthday,dear<名字>
Happy birthday to you!
现在你的小伙伴Mike和Lily过生日了,你要编写程序为Mike和Lily输出生日歌。最简单的实现方法是重复使用print()语句,对Mike的生日歌输出如下:
print(“Happy birthday to you!”)
print(“Happy birthday to you!”)
print(“Happy birthday ,dear Mike!”)
print(“Happy birthday to you!”)
我们可以注意到,1、2、4行代码是完全一致的。这时候我们就可以考虑用函数对相同的部分进行封装。我们利用函数,将上面代码改为:
def happy():
print("Happy birthday to you!")
def happyB(name):
happy()
happy()
print("Happy birthday, dear {}!".format(name))
happy()
happyB("Mike")
print()
happyB("Lily")
程序的输出结果如下:
有关函数的调用过程,程序调用一个函数需要执行以下4个步骤:
(1)调用程序在调用处暂停执行
(2)在调用时将实参复制给函数的形参
(3)执行函数体语句
(4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行
调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。
下面我们来介绍一下Lambda函数。Lambda函数又称匿名函数,匿名函数就是没有名字的函数。有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可。先来看个简单lambda函数:
>>> lambda x, y : x+y
at 0x102bc1c80>
x和y是函数的两个参数,冒号后面的表达式是函数的返回值,你能一眼看
出这个函数就是是在求两个变量的和,但作为一个函数,没有名字如何使用呢?
我们给这个匿名函数绑定一个名字,这样就使得我们调用匿名函数成为可
能。
>>> add = lambda x, y : x+y
>>> add
---------------------(结果)
>>> add(1,2)
3
它其实等同于下面常规函数:
>>> def add2(x, y):
... return x+y
...
>>> add2
-----------------------(结果)
>>> add2(1,2)
3