在Python中定义并调用函数的核心步骤为:明确功能目标→设计参数与返回值→用def声明函数→编写内部逻辑→通过函数名调用,合理封装可提升代码复用率和可维护性。以下是具体操作要点:
-
功能设计与参数规划
编写函数前需明确该函数要解决的问题,例如数据清洗、数学计算或文件处理。根据需求确定输入参数类型(如必需参数、默认参数或可变参数)及返回值结构。例如处理用户年龄验证的函数需接收“年龄”参数并返回布尔值,而数据统计函数可能需要接收列表并返回平均值、最大值等多个数值。 -
函数定义与逻辑实现
使用plaintext复制语法声明函数,函数体内实现核心逻辑。注意:def function_name(parameters):
- 用4个空格缩进区分代码块层级
- 通过plaintext复制返回结果(无return语句默认返回None)
return
- 可添加文档字符串(docstring)说明函数用途
示例:验证邮箱格式的函数可设计为:
python复制def check_email(email): """验证邮箱格式合法性""" if '@' in email and '.' in email.split('@')[-1]: return True return False
-
参数传递与调用技巧
- 位置参数:plaintext复制
calculate_area(5, 3)
- 关键字参数:plaintext复制
calculate_area(width=5, height=3)
- 默认参数:plaintext复制
def greet(name, msg="早安")
- 可变参数:plaintext复制接收元组,
*args
plaintext复制接收字典**kwargs
调用时注意参数顺序和类型匹配,复杂函数建议采用类型提示:
python复制def load_data(file_path: str) -> pd.DataFrame: # 读取CSV文件返回DataFrame
- 位置参数:
-
异常处理与参数验证
在函数内部增加条件判断或try-except块预防错误:python复制def divide(a, b): if b == 0: raise ValueError("除数不能为零") return a / b
对关键参数进行类型校验,例如用isinstance()确认输入为整数。
-
高阶函数与装饰器应用(进阶)
掌握函数作为参数传递的特性,例如使用map()处理迭代对象:python复制squared = list(map(lambda x: x**2, [1,2,3]))
通过装饰器扩展函数功能,如添加执行耗时统计:
python复制def timer(func): def wrapper(*args): start = time.time() result = func(*args) print(f"耗时:{time.time()-start} 秒") return result return wrapper
提示:建议将通用功能封装为函数库,使用
if __name__ == '__main__'