函数
—— 掌握 Python 编程核心结构的关键一步
一、函数的基本概念与作用
1.1 什么是函数?
函数(Function)是具有特定功能的代码块,通过定义一次,可以重复调用。在 Python 中,函数是组织代码、封装逻辑、提高代码复用性的重要工具。
函数的语法结构:
def 函数名([参数列表]):
函数体
[return 返回值]
def
是关键字,表示定义函数;函数名
要符合命名规则,最好能体现功能;参数列表
是函数的输入接口;return
是输出接口,可选。
1.2 函数的优势
模块化开发:将代码逻辑拆分为不同功能模块;
提高复用性:定义一次,用于多处;
便于维护和调试;
逻辑清晰,可读性强。
二、自定义函数第一步:基础练习与参数使用
2.1 无参函数
def greet():
print("Hello, Python!")
调用方式:
greet()
2.2 有参函数:以求因数为例
def get_factors(n):
for i in range(1, n+1):
if n % i == 0:
print(i)
调用示例:
get_factors(10) # 输出 1, 2, 5, 10
2.3 返回值
def get_factors_list(n):
return [i for i in range(1, n+1) if n % i == 0]
调用:
factors = get_factors_list(12)
print(factors)
三、自定义函数第二步:参数的多样化设计
3.1 位置参数
参数按顺序传递:
def user_info(name, age):
print(f"姓名:{name}, 年龄:{age}")
user_info('Tom', 25)
3.2 关键字参数
参数名=值形式传参,顺序可以不一致:
user_info(age=18, name='John')
3.3 默认值参数
函数可以为参数设置默认值:
def user_info(name='Unknown', age=18):
print(f"姓名:{name}, 年龄:{age}")
user_info() # 使用默认值
user_info('Alice', 22)
3.4 不定长参数 *args
和 **kwargs
*args
接收多个 位置参数,以元组形式传入**kwargs
接收多个 关键字参数,以字典形式传入
def show_info(*args, **kwargs):
print("位置参数:", args)
print("关键字参数:", kwargs)
show_info(1, 2, 3, name='Tom', age=18)
四、函数的进阶用法(扩展内容)
4.1 返回多个值
def min_max(numbers):
return min(numbers), max(numbers)
min_val, max_val = min_max([2, 7, 1, 9])
4.2 嵌套函数
def outer():
def inner():
print("内部函数")
inner()
4.3 匿名函数(Lambda 表达式)
适合快速定义简单函数,一般用于函数式编程:
square = lambda x: x * x
print(square(5)) # 输出 25
4.4 函数作为参数传递
def operate(x, y, func):
return func(x, y)
result = operate(10, 5, lambda a, b: a + b)
五、函数的作用域与命名空间
5.1 局部变量与全局变量
x = 10 # 全局变量
def change():
x = 5 # 局部变量
print("函数内:", x)
change()
print("函数外:", x)
5.2 使用 global 修改全局变量
x = 10
def change():
global x
x = 5
change()
print(x) # 输出 5
5.3 nonlocal
用于嵌套函数
def outer():
x = "outer"
def inner():
nonlocal x
x = "inner"
inner()
print(x) # 输出 inner
六、函数在现代 Python 开发中的实际应用
6.1 函数与模块化开发
将函数保存到 .py
文件中,通过 import
导入使用,适合大型项目:
# utils.py
def greet(name):
print(f"Hello, {name}!")
# main.py
from utils import greet
greet('Alice')
6.2 函数与面向对象结合
类中定义的方法本质也是函数:
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hello, I’m {self.name}")
6.3 函数与装饰器(Decorator)
装饰器本质是函数嵌套函数,用于增强原函数功能:
def logger(func):
def wrapper(*args, **kwargs):
print("函数开始执行")
result = func(*args, **kwargs)
print("函数结束执行")
return result
return wrapper
@logger
def add(x, y):
return x + y
七、练习与扩展建议
7.1 基础练习题
编写函数判断一个数是否为质数
编写函数实现 Fibonacci 数列前 n 项
编写函数统计一段文本中每个单词出现的频率
7.2 应用实战练习
封装一个商品管理系统的增删改查函数
使用函数完成图像识别中的批量处理模块
模拟学生成绩分析系统,包含多函数结构和参数传递
八、总结
函数是 Python 编程语言中不可或缺的组成部分。从最基本的函数定义与调用,到参数的多样化设计,再到高阶函数、嵌套函数、装饰器等进阶技术,函数贯穿了 Python 的核心编程思维。掌握函数不仅能提高代码组织能力和复用性,更是走向大型项目开发、数据分析、Web 编程、AI 应用的第一步。