个人主页:Guiat
归属专栏:Python
文章目录
- 1. 函数的定义
- 1.1 基本定义方式
- 1.2 函数名和参数
- 2. 函数的调用
- 2.1 基本调用方式
- 2.2 参数传递
- 3. 函数的返回值
- 3.1 `return` 语句
- 3.2 返回多个值
- 4. 函数的作用域
- 4.1 局部变量
- 4.2 全局变量
- 5. 匿名函数(Lambda 函数)
- 5.1 定义和使用
- 5.2 应用场景
- 6. 递归函数
- 6.1 定义和原理
- 6.2 优缺点
正文
1. 函数的定义
1.1 基本定义方式
在 Python 中,使用 def
关键字来定义函数。其基本语法如下:
def function_name(parameters):"""函数文档字符串,用于描述函数的功能和使用方法"""# 函数体,包含具体的执行代码return result # 可选,用于返回函数的结果
以下是一个简单的示例,定义一个用于计算两个数之和的函数:
def add_numbers(a, b):"""计算两个数的和"""return a + b
1.2 函数名和参数
- 函数名应该具有描述性,遵循 Python 的命名规范(通常使用小写字母和下划线)。
- 参数是函数接收的输入值,可以有零个或多个。参数在函数定义时位于括号内,多个参数之间用逗号分隔。
2. 函数的调用
2.1 基本调用方式
定义好函数后,可以通过函数名加上括号并传入相应的参数来调用函数。例如,调用上面定义的 add_numbers
函数:
result = add_numbers(3, 5)
print(result) # 输出 8
2.2 参数传递
- 位置参数:按照参数在函数定义中的顺序依次传递值。例如:
def greet(name, message):print(f"{message}, {name}!")greet("Alice", "Hello") # 位置参数传递
- 关键字参数:通过指定参数名来传递值,这样可以不按照参数定义的顺序。例如:
greet(message="Hi", name="Bob") # 关键字参数传递
- 默认参数:在函数定义时可以为参数指定默认值,调用函数时如果没有提供该参数的值,则使用默认值。例如:
def greet(name, message="Hello"):print(f"{message}, {name}!")greet("Charlie") # 使用默认的 message 值
3. 函数的返回值
3.1 return
语句
return
语句用于从函数中返回一个值,并终止函数的执行。一个函数可以有多个 return
语句,但只有一个会被执行。例如:
def is_even(num):if num % 2 == 0:return Truereturn Falseprint(is_even(4)) # 输出 True
3.2 返回多个值
在 Python 中,函数可以通过返回一个元组的方式返回多个值。例如:
def get_name_and_age():name = "David"age = 25return name, agename, age = get_name_and_age()
print(f"Name: {name}, Age: {age}")
4. 函数的作用域
4.1 局部变量
在函数内部定义的变量是局部变量,只能在函数内部访问。例如:
def example_function():local_variable = 10print(local_variable)example_function()
# print(local_variable) # 这行代码会报错,因为 local_variable 是局部变量
4.2 全局变量
在函数外部定义的变量是全局变量,可以在函数内部访问,但如果要在函数内部修改全局变量的值,需要使用 global
关键字。例如:
global_variable = 20def modify_global():global global_variableglobal_variable = 30modify_global()
print(global_variable) # 输出 30
5. 匿名函数(Lambda 函数)
5.1 定义和使用
Lambda 函数是一种简洁的、匿名的函数,通常用于简单的、一次性的操作。其基本语法为:
lambda arguments: expression
以下是一个使用 Lambda 函数的示例,用于计算两个数的乘积:
multiply = lambda a, b: a * b
print(multiply(4, 6)) # 输出 24
5.2 应用场景
Lambda 函数常用于需要传递一个简单函数作为参数的情况,例如在 map()
、filter()
等函数中。例如,使用 map()
函数将列表中的每个元素都平方:
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 输出 [1, 4, 9, 16]
6. 递归函数
6.1 定义和原理
递归函数是指在函数内部调用自身的函数。递归函数通常包含两个部分:基本情况(终止条件)和递归情况。基本情况用于终止递归,避免无限循环。例如,计算阶乘的递归函数:
def factorial(n):if n == 0 or n == 1:return 1 # 基本情况return n * factorial(n - 1) # 递归情况print(factorial(5)) # 输出 120
6.2 优缺点
- 优点:递归函数可以使代码更加简洁、清晰,尤其适用于处理具有递归结构的问题,如树的遍历、分治算法等。
- 缺点:递归函数可能会导致栈溢出错误,尤其是在递归深度很大的情况下。同时,递归函数的性能可能不如迭代实现,因为每次递归调用都需要额外的栈空间和函数调用开销。
结语
感谢您的阅读!期待您的一键三连!欢迎指正!