一、为什么要使用函数
Python中函数是一种重要的代码组织方式。函数能让你将一个大的任务分解成许多小的任务,这些小的任务可相互独立完成,并且可以重复使用。函数能够让代码更加模块化,这使得整个程序更加清晰,易于维护。
下面是一个例子,使用函数来计算两个数的和:
def add(a, b): return a + b x = add(3, 4) print(x) # 输出结果为7
二、Python函数的定义与调用
Python函数的定义方式如下:
def function_name(parameters): statement(s)
其中function_name是函数的名称,需要符合Python的命名规则,通常使用小写字母;parameters是可选的输入参数,多个参数之间使用逗号分隔;statements是函数的实现,需要使用缩进表示属于这个函数的一部分。
这是一个计算平方的函数,我们可以定义它如下:
def square(x): result = x * x return result
调用函数的方法非常简单,只需要写上函数名,并将需要的参数传递给它即可:
x = square(5) print(x) # 输出结果为25
三、函数返回多值
Python函数可以返回多个值。实际上,Python会将返回值封装成一个元组(tuple)并一起返回。
以下是一个例子,演示如何返回多个值:
def divide(x, y): quotient = x // y remainder = x % y return quotient, remainder q, r = divide(10, 3) print(q, r) # 输出结果为3 1
在上面的代码中,我们定义了一个函数divide,它将两个参数x和y作为输入,并返回商和余数。我们可以使用两个变量q和r将返回的结果解包(unpack)。
四、函数的参数传递方式
Python中函数的参数可以是位置参数、关键字参数以及默认参数。
以下是示例代码,演示如何使用这三种参数传递方式:
# 位置参数 def greet(name, message): print("Hello", name + ',', message) greet("Bob", "how are you?") # 输出结果为Hello Bob, how are you? # 关键字参数 greet(message="how are you?", name="Bob") # 输出结果为Hello Bob, how are you? # 默认参数 def greet(name, message="how are you?"): print("Hello", name + ',', message) greet("Bob") # 输出结果为Hello Bob, how are you?
在函数的定义中,我们可以使用参数默认值来创建默认参数,当调用函数时,没有提供对应的参数时,程序使用默认值,而不必指定它们。
五、匿名函数
Python中的匿名函数(lambda函数)是一种简单的函数,通常用于需要一些简短的操作时使用。
下面是一个例子,使用lambda函数来计算两个数的和:
add = lambda x, y: x + y print(add(3, 4)) # 输出结果为7
匿名函数有以下的限制:它只能包含一个表达式,并且该表达式的值成为函数的返回值,不能包含多条语句;不能访问函数外面的变量。
六、闭包
Python中的闭包是指可以在内部函数中访问到以外函数作用域的变量的函数。
以下是一个例子,演示如何使用闭包:
def outer_func(x): def inner_func(y): return x + y return inner_func closure = outer_func(10) print(closure(5)) # 输出结果为15
在上面的代码中,我们定义了一个outer_func函数,它接受一个参数x,返回一个内部函数inner_func。内部函数可以访问外部函数的变量x。我们可以将outer_func(10)的结果赋值给一个变量closure。这个变量实际上是一个函数(inner_func),当我们调用它并传入一个参数5时,变量x的值仍然是10,因此函数的返回值为15。