18.1 函数的定义(掌握)
函数是一个可重用的代码块,用于执行特定的任务。函数可以接收输入参数并返回结果,帮助我们组织代码并提高可读性和可维护性。
定义函数的基本语法:
def function_name(parameters): """可选的文档字符串""" # 函数体 return result # 可选的返回值
示例:
def greet(name): """打印问候信息""" print(f"Hello, {name}!") greet("Alice") # 调用函数,输出: Hello, Alice!
18.2 函数的调用(掌握)
函数定义后可以通过调用来执行。函数调用可以传递参数,调用函数时参数的顺序要与定义时一致。
示例:
def add(a, b): """返回两个数的和""" return a + b result = add(5, 3) # 调用函数,传递参数 print(result) # 输出: 8
18.3 函数的参数(掌握)
函数可以接收参数,参数是函数外部传入的值,函数内部可以使用这些值。
18.3.1 位置参数
定义和调用:
def multiply(x, y): return x * y print(multiply(2, 3)) # 输出: 6
18.3.2 默认参数
定义默认参数:在定义函数时,可以为参数指定默认值,调用时可以选择性传入参数。
def power(base, exponent=2): return base ** exponent print(power(3)) # 输出: 9 (使用默认 exponent) print(power(3, 3)) # 输出: 27 (覆盖默认 exponent)
18.3.3 可变参数
使用
*args
和**kwargs
:*args
用于传入任意数量的位置参数,**kwargs
用于传入任意数量的关键字参数。def sum_all(*args): return sum(args) print(sum_all(1, 2, 3, 4)) # 输出: 10 def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="Alice", age=30) # 输出: name: Alice, age: 30
18.4 函数的返回值(掌握)
函数可以返回结果,使用 return
语句指定返回值。如果没有 return
,函数将返回 None
。
示例:
def square(n): return n * n result = square(4) print(result) # 输出: 16
18.4.1 多个返回值
返回多个值:可以使用逗号分隔多个值。
def divide(a, b): return a // b, a % b # 返回商和余数 quotient, remainder = divide(10, 3) print(quotient, remainder) # 输出: 3 1
18.5 函数的文档字符串(掌握)
文档字符串(docstring)是函数定义中的字符串,用于描述函数的功能。文档字符串通常是函数的第一行,可以通过 help()
函数查看。
示例:
def subtract(a, b): """返回 a 和 b 的差值""" return a - b print(help(subtract)) # 查看文档字符串
18.6 函数的作用域(掌握)
变量的作用域决定了其可见性和生命周期。在 Python 中,变量有局部作用域和全局作用域。
18.6.1 局部变量
在函数内定义的变量:只在函数内有效,外部无法访问。
def func(): local_var = 10 # 局部变量 print(local_var) func() # print(local_var) # 会引发 NameError
18.6.2 全局变量
在函数外定义的变量:可以在整个程序中访问。
global_var = 20 # 全局变量 def func(): print(global_var) # 可以访问全局变量 func() # 输出: 20
18.6.3 使用 global
关键字
在函数内部修改全局变量:可以使用
global
关键字声明。global_var = 30 def modify_global(): global global_var # 声明使用全局变量 global_var += 10 modify_global() print(global_var) # 输出: 40
18.7 高阶函数(掌握)
高阶函数是指接受函数作为参数或返回一个函数的函数。在 Python 中,函数是第一类对象,可以作为参数传递。
18.7.1 函数作为参数
示例:
def apply_function(func, value): return func(value) def square(n): return n * n result = apply_function(square, 5) print(result) # 输出: 25
18.7.2 返回函数
示例:
def outer_function(msg): def inner_function(): print(msg) return inner_function # 返回内嵌函数 my_func = outer_function("Hello, World!") my_func() # 输出: Hello, World!
18.8 匿名函数(了解)
匿名函数(lambda 函数)是一种没有名字的函数,通常用于需要小型函数的场景,如在 map()
、filter()
和 sorted()
等函数中使用。
示例:
square = lambda x: x * x print(square(5)) # 输出: 25 # 使用 map() 函数 numbers = [1, 2, 3, 4] squares = list(map(lambda x: x ** 2, numbers)) print(squares) # 输出: [1, 4, 9, 16]