目录
一、函数基础
定义:在Python中,函数使用def
关键字定义。定义函数时,需要指定函数名和形参(形式参数)。
def greet(name):
print(f"Hello, {name}!")
调用:定义函数后,可以通过函数名和括号内的实参(实际参数)来调用函数。
greet("Alice") # 输出: Hello, Alice!
形参:在函数定义中,括号内的变量称为形参,它们是函数的输入参数。
实参:在函数调用时,传递给函数的值称为实参。
返回值:函数可以通过return
语句返回一个值。如果没有return
语句,函数默认返回None
。
def add(a, b):
return a + b
result = add(3, 4) # result 现在是 7
二、函数的类型
内置函数:Python语言自带的函数,如len()
, max()
, min()
等。
用户定义函数:用户通过def
或lambda
定义的函数。
匿名函数:没有名称的函数,使用lambda
关键字定义。
高阶函数:接受另一个函数作为参数或返回一个函数的函数。
递归函数:在函数内部调用自身的函数。
三、递归函数
递归函数是一种自我调用的函数,用于解决可以分解为相似子问题的问题。
示例:计算阶乘。
def factorial(n):
if n == 0: # 基本情况
return 1
else:
return n * factorial(n - 1) # 递归调用
print(factorial(5)) # 输出: 120
注意:递归函数必须有基本情况(base case),以避免无限递归导致栈溢出。
四、匿名函数
匿名函数是没有名称的函数,使用lambda
关键字定义。它们通常用于需要函数对象的场合,但不想或不需要定义一个完整的函数。
基本语法:
lambda arguments: expression
示例:
# 定义一个匿名函数,计算两个数的和
add = lambda x, y: x + y
# 调用匿名函数
print(add(3, 4)) # 输出: 7
使用场景:
-
作为回调函数,如排序操作中的比较函数。
-
在需要传递函数作为参数的高阶函数中使用。
示例:使用匿名函数作为排序的比较函数。
my_list = [(1, 'one'), (2, 'two'), (3, 'three')]
my_list.sort(key=lambda x: x[1]) # 根据元组的第二个元素排序
print(my_list) # 输出: [(3, 'three'), (2, 'two'), (1, 'one')]
匿名函数通常用于简单表达式,不适合复杂的逻辑。它们是Python函数式编程的一部分,使得代码更加简洁和灵活。