1. 函数定义
Python函数通过def
关键字定义。一个函数通常包括函数名、参数列表和函数体。
python">def greet(name):
return f"Hello, {name}!"
2. 函数的类型
Python中的函数主要有以下几种类型:
- 普通函数:具有明确的输入参数和返回值。
- 递归函数:函数内部调用自身。
- 匿名函数(Lambda函数):没有名字的小函数,通常用于简单的操作。
3. 函数参数
函数的参数有不同的形式:
-
位置参数:按照定义顺序传入参数。
python">def add(a, b): return a + b add(1, 2) # 输出:3
-
默认参数:为参数指定默认值,如果调用时没有传入该参数,使用默认值。
python">def greet(name, greeting="Hello"): return f"{greeting}, {name}!" print(greet("Alice")) # 输出:Hello, Alice! print(greet("Alice", "Good Morning")) # 输出:Good Morning, Alice!
-
可变参数(
*args
):接收多个位置参数,将它们作为元组传递给函数。python">def sum_all(*args): return sum(args) print(sum_all(1, 2, 3)) # 输出:6
-
关键字参数(
**kwargs
):接收多个关键字参数,将它们作为字典传递给函数。python">def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="Alice", age=25) # 输出: # name: Alice # age: 25
4. 函数返回值
Python函数通过return
语句返回一个值,可以返回任意类型的对象(如数字、字符串、列表、字典等)。
python">def multiply(x, y):
return x * y
result = multiply(2, 3) # 输出:6
如果没有return
语句,函数将默认返回None
。
python">def no_return():
pass
print(no_return()) # 输出:None
5. 函数嵌套
函数可以在另一个函数内定义,称为函数嵌套。内嵌的函数只能在外部函数内部使用。
python">def outer():
def inner():
return "Hello from the inner function!"
return inner()
print(outer()) # 输出:Hello from the inner function!
6. 局部变量与全局变量
-
局部变量:在函数内部定义的变量,只能在该函数内部访问。
python">def example(): local_var = 10 print(local_var) example() # 输出:10
-
全局变量:在函数外部定义的变量,可以在函数内部访问。可以通过
global
关键字在函数内修改全局变量的值。python">global_var = 5 def modify_global(): global global_var global_var = 10 modify_global() print(global_var) # 输出:10
7. 递归函数
递归函数是函数内部调用自身。递归通常需要一个终止条件,否则会导致无限递归,最终引发RecursionError
。
python">def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # 输出:120
8. 匿名函数(Lambda函数)
lambda
函数是没有名字的小函数,通常用于需要简单操作的场合。语法为:lambda 参数: 表达式
。
python"># 示例:求平方
square = lambda x: x ** 2
print(square(3)) # 输出:9
# 示例:排序
data = [(1, 'one'), (3, 'three'), (2, 'two')]
data.sort(key=lambda x: x[0])
print(data) # 输出:[(1, 'one'), (2, 'two'), (3, 'three')]
总结
- 函数定义:通过
def
定义。- 函数类型:包括普通函数、递归函数和匿名函数。
- 函数参数:支持位置参数、默认参数、可变参数和关键字参数。
- 返回值:通过
return
语句返回,默认为None
。- 函数嵌套:可以在函数内部定义其他函数。
- 局部变量与全局变量:局部变量仅在函数内有效,
global
关键字用于修改全局变量。- 递归函数:函数调用自身,通过终止条件避免无限递归。
- 匿名函数(Lambda函数):简单的匿名函数,适合短小的操作。