一、什么是函数
函数是Python中用于封装代码、实现重复利用的一种机制。函数可以接受参数、返回值或不返回值等操作。它是一种有序执行的过程,其中包含一组语句,一般情况下在需要时可以反复调用。
下面代码展示了如何定义一个简单的函数:
def greet(name): print('Hello, %s!' % name)
调用函数可以调用不同的参数:
greet('Tom') greet('Jerry')
输出结果为:
Hello, Tom! Hello, Jerry!
二、函数参数的传递
函数参数可以是必需参数、关键字参数、默认参数和不定长参数。
1. 必需参数
必需参数是函数定义中必须传入的参数。如下所示:
def greet(name, age): print('Hi, my name is %s and I am %d years old.' % (name, age)) greet('Tom', 26)
输出结果为:
Hi, my name is Tom and I am 26 years old.
2. 关键字参数
关键字参数是可以不按顺序调用的参数。如下所示:
def greet(name, age): print('Hi, my name is %s and I am %d years old.' % (name, age)) greet(age=26, name='Tom')
输出结果为:
Hi, my name is Tom and I am 26 years old.
3. 默认参数
默认参数是可以传入的可选参数。如下所示:
def greet(name, age=26): print('Hi, my name is %s and I am %d years old.' % (name, age)) greet('Tom') greet('Jerry', 25)
输出结果为:
Hi, my name is Tom and I am 26 years old. Hi, my name is Jerry and I am 25 years old.
4. 不定长参数
不定长参数是指可以传入不固定数量的参数,在函数内部会被解析成一个元组或字典。如下所示:
def greet(*names): print('Hi, my name is %s' % (names[0])) for name in names[1:]: print('Hi, his name is %s' % name) greet('Tom', 'Jerry', 'Spike')
输出结果为:
Hi, my name is Tom Hi, his name is Jerry Hi, his name is Spike
三、函数返回值
函数可以返回一个值或多个值。使用return语句返回一个值或多个值,返回后函数立即结束。如下所示:
def add(a, b): return a+b def swap(a, b): return b, a print(add(3, 4)) print(swap(3, 4))
输出结果为:
7 (4, 3)
四、局部变量与全局变量
在函数内部定义的变量为局部变量,只在函数内部有效。在函数外部定义的变量为全局变量,可以在程序的任何地方使用。如下所示:
x = 0 # 全局变量 def add(a, b): x = a + b # 局部变量 return x print(add(3, 4)) print(x)
输出结果为:
7 0
五、内嵌函数
内嵌函数是指在函数内部定义的函数,只能在外层函数中调用。如下所示:
def outer(a, b): def inner(x, y): return x*y return inner(a, b) print(outer(3, 4))
输出结果为:
12
六、Lambda函数
Lambda函数是一种匿名函数,可以用于简单的函数编写。Lambda函数的语法如下所示:
lambda arguments: expression
如下代码展示如何使用Lambda函数:
add = lambda a, b: a+b print(add(3,4))
输出结果为:
7
七、总结
函数是Python中非常重要的一种机制,能够有效地提升程序的可读性和可维护性。掌握函数的使用方法,对于编写高质量、高效的程序非常重要。