Python 中的函数是组织代码的一种重要方式。函数能够提高代码的复用性、可读性,并让程序结构更加清晰。函数的基本作用是将一段可复用的代码块封装成一个独立的模块,并且能够通过函数调用的方式在程序中多次使用。
1. 函数定义
在 Python 中,函数使用 def
关键字来定义。定义函数的基本语法如下:
def function_name(parameters):
# 函数体
return value
def
是定义函数的关键字。function_name
是函数名,必须符合变量命名规则。parameters
是函数的参数(可以是多个,也可以没有参数)。return
语句用于返回函数的结果。
2. 函数的参数
函数可以接收零个或多个参数,参数是函数的一部分,用来传递信息给函数以便执行某些操作。
2.1 位置参数
最常见的参数形式,函数调用时根据位置顺序传递给函数。
def greet(name, age):
print(f"Hello {name}, you are {age} years old.")
greet("Alice", 30)
2.2 默认参数
可以为函数的参数指定默认值,如果调用函数时没有传递对应的参数,则使用默认值。
def greet(name, age=18):
print(f"Hello {name}, you are {age} years old.")
greet("Bob") # 使用默认年龄 18
greet("Alice", 25) # 使用传入的年龄 25
2.3 可变参数
Python 提供了 *args
和 **kwargs
来支持可变数量的参数。
*args
:允许传递任意数量的位置参数,args
是一个元组。**kwargs
:允许传递任意数量的关键字参数,kwargs
是一个字典。
def example(*args, **kwargs):
print(args) # 输出元组
print(kwargs) # 输出字典
example(1, 2, 3, name="Alice", age=25)
3. 返回值
函数可以通过 return
返回结果。如果没有 return
语句,函数默认返回 None
。
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 输出 8
4. 函数的作用域
函数中的变量有局部作用域,意味着它们只在函数内部可见。函数外的变量是全局作用域,外部无法访问函数内部的局部变量。
4.1 局部变量与全局变量
x = 10 # 全局变量
def foo():
x = 5 # 局部变量
print(f"Inside function: {x}")
foo()
print(f"Outside function: {x}")
输出:
Inside function: 5
Outside function: 10
4.2 global
关键字
使用 global
关键字可以在函数内部修改全局变量。
x = 10
def modify_global():
global x
x = 20
modify_global()
print(x) # 输出 20
4.3 nonlocal
关键字
nonlocal
用于修改外层嵌套函数中的变量,而非全局变量。
def outer():
x = 10
def inner():
nonlocal x
x = 20
inner()
print(x) # 输出 20
outer()
5. 递归函数
递归是指函数在其定义中调用自身。递归函数通常需要一个“基本情况”来终止递归,否则会无限循环。
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 输出 120
6. Lambda 函数
Lambda 函数(匿名函数)是一个简洁的函数形式,通常用于需要一个短小函数的场景。其基本语法是:
lambda arguments: expression
例如:
add = lambda x, y: x + y
print(add(3, 5)) # 输出 8
7. 函数注解
Python 提供了函数注解功能,可以给函数的参数和返回值添加类型提示。
def add(a: int, b: int) -> int:
return a + b
print(add(3, 5)) # 输出 8
8. 内置函数
Python 提供了一些常用的内置函数,可以直接调用,例如:
len()
:返回对象的长度。max()
:返回序列中的最大值。min()
:返回序列中的最小值。sum()
:返回序列中元素的和。sorted()
:返回一个排序后的序列。
例如:
numbers = [1, 2, 3, 4, 5]
print(len(numbers)) # 输出 5
print(max(numbers)) # 输出 5
9. 函数的高阶特性
Python 中的函数支持一些高级特性,例如:
- 函数可以作为参数传递给另一个函数。
- 函数可以作为返回值。
例如:
def apply_function(func, x, y):
return func(x, y)
def add(a, b):
return a + b
print(apply_function(add, 3, 5)) # 输出 8
10. 总结
函数是 Python 编程中不可或缺的工具,它们帮助我们组织代码、提高代码的复用性。通过理解函数的定义、参数、返回值以及作用域等基本概念,可以使我们更好地利用函数进行编程。
发表回复