函数是Python中的重要概念,允许您组织和重用代码块。函数由函数名、参数和函数体组成,它们可以接受输入并产生输出。
函数的定义
在Python中,函数通过使用def
关键字来定义。
一个函数的基本结构如下:
def function_name(parameters):
"""Docstring: 函数的文档字符串,描述函数的作用、参数和返回值"""
# 函数体,包含要执行的代码块
statements
return expression # 可选的返回语句
-
function_name
是函数的名称,应该遵循命名规范(例如使用小写字母和下划线分隔单词)。 -
parameters
是函数的参数列表,可以包含零个或多个参数,多个参数之间用逗号分隔。 -
"""Docstring"""
是函数的文档字符串,用于描述函数的作用、参数、返回值等信息,通常写在函数定义的第一行。 -
函数体包含要执行的代码块,可以是任意数量的语句,可以包含条件语句、循环语句、变量赋值等。 -
return
语句是可选的,用于从函数中返回值,可以返回单个值、多个值(以元组形式返回)、或者不返回任何值(返回None
)。
以下是一个示例函数的定义:
def greet(name):
"""这是一个简单的问候函数"""
message = f"Hello, {name}!"
return message
在这个示例中,greet
是函数的名称,它接受一个参数name
,并返回一个问候消息。文档字符串描述了函数的作用,即用来生成问候消息。在函数体中,定义了一个变量message
用于存储问候消息,并使用return
语句将消息返回给调用者。
参数传递
函数可以接受位置参数、关键字参数和默认参数。位置参数按照参数列表的顺序传递,关键字参数通过参数名传递。
def add(x, y=0):
"""加法函数"""
return x + y
result1 = add(3, 4) # 位置参数,结果为7
result2 = add(x=5, y=2) # 关键字参数,结果为7
result3 = add(3) # 默认参数,结果为3
返回值
使用return
语句从函数中返回值。可以返回单个值或多个值(以元组形式返回)。
def divide(x, y):
"""除法函数"""
if y == 0:
return "Error: division by zero"
else:
return x / y
result = divide(10, 2) # 结果为5.0
匿名函数(Lambda 函数)
Lambda函数是一种简洁的方式定义小型匿名函数。它们通常用于函数式编程和在需要函数作为参数的情况下。
square = lambda x: x**2
result = square(5) # 结果为25
递归函数
递归函数是指在函数定义中调用自身的函数。递归通常用于解决可以分解为相似子问题的问题。
def factorial(n):
"""计算阶乘的递归函数"""
if n == 0:
return 1
else:
return n * factorial(n-1)
result = factorial(5) # 结果为120