第3章 Python基础回顾:环境配置、基础语法速览、常用数据结构、函数与模块

说实话,很多做报告自动化的同学,最后卡住的不是业务逻辑,而是Python基础不牢。我见过太多人写脚本写到一半,连个列表推导式都写不利索,更别提用pathlib优雅地处理文件路径了。

这一章,咱们就把Python基础过一遍。别担心,我不会让你背语法手册。我会告诉你哪些东西在报告自动化里真正有用,哪些坑我踩过。

本章核心目标:用30分钟快速唤醒Python基础,重点掌握文件处理、数据结构和模块化编程——这三样东西,是自动化报告的灵魂。

3.1 环境配置:别让工具拖后腿

我建议你用Python 3.9以上版本。为什么?因为3.9引入了zoneinfo,处理时区不再需要第三方库。报告里经常要打时间戳,这个特性很实用。

安装完Python,第一件事就是配虚拟环境。我个人习惯用venv,轻量、够用。

# 创建虚拟环境
python -m venv report_env

# 激活(Windows)
report_env\Scripts\activate

# 激活(macOS/Linux)
source report_env/bin/activate

嗯,这里要注意:永远不要在全局环境里装项目依赖。我曾经因为图省事,直接在系统Python里装了一堆包,结果两个项目依赖冲突,折腾了一下午才搞定。

我的小技巧:在项目根目录放一个requirements.txt,每次换电脑或部署时,一行命令就能恢复环境:pip install -r requirements.txt

3.2 基础语法速览:够用就行

报告自动化里,Python语法用到最多的就这几样:变量、条件判断、循环、字符串处理。别的不说,字符串格式化你得玩熟。

# 老式写法(不推荐)
name = "Q3财报"
print("正在生成:%s" % name)

# f-string(推荐,Python 3.6+)
print(f"正在生成:{name}")

# 带格式控制
revenue = 1234567.89
print(f"营收:{revenue:,.2f} 元")  # 输出:营收:1,234,567.89 元

你看,f-string配合格式化说明符,数字千分位、小数位数一步到位。报告里那些财务数字,用这个处理特别顺手。

3.3 常用数据结构:选对工具,事半功倍

Python内置的数据结构,说白了就四种:列表、字典、元组、集合。但报告自动化里,字典和列表是绝对的主角。

数据结构 特点 报告自动化典型场景
列表 有序、可修改 存储多行数据、图表数据点
字典 键值对、快速查找 配置参数、单行记录
元组 有序、不可修改 固定配置、函数多返回值
集合 无序、去重 数据去重、交集/差集运算

举个例子,你要从数据库里查出一批销售记录,每条记录用字典表示,多条记录放列表里。这种结构,后面转成DataFrame或者直接写Excel都很方便。

# 典型的报告数据模型
sales_data = [
    {"region": "华东", "revenue": 1250000, "target": 1500000},
    {"region": "华南", "revenue": 980000, "target": 1000000},
    {"region": "华北", "revenue": 1120000, "target": 1100000},
]

# 列表推导式:快速筛选达标区域
achieved = [item for item in sales_data if item["revenue"] >= item["target"]]
print(achieved)
# 输出:[{'region': '华北', 'revenue': 1120000, 'target': 1100000}]

避坑提醒:我曾经在循环里直接修改列表,导致索引错乱。记住:遍历列表时不要增删元素。如果非要改,用列表推导式生成新列表,或者用enumerate()配合索引操作。

3.4 函数与模块:把代码装进盒子里

写报告脚本最忌讳什么?把所有逻辑堆在一个文件里,几百行代码,改一个地方牵一发动全身。你想想看,要是每个报告模块都能独立测试、独立维护,那该多省心。

函数就是最小的代码盒子。我建议你遵循一个原则:一个函数只做一件事。

# 不好的写法:一个函数干三件事
def process_report(data):
    # 清洗数据
    # 计算指标
    # 生成图表
    pass

# 好的写法:拆成三个函数
def clean_data(raw_data):
    """清洗原始数据"""
    pass

def calculate_metrics(cleaned_data):
    """计算关键指标"""
    pass

def generate_chart(metrics_data):
    """生成图表"""
    pass

模块呢,就是把相关的函数和类打包在一起。比如,所有和Excel相关的操作放excel_utils.py,所有图表相关的放chart_utils.py。这样项目结构清晰,别人接手也容易看懂。

我的习惯:每个模块文件开头写一个简短的docstring,说明这个模块是干什么的。半年后你回来看代码,会感谢当初的自己。

3.5 本章知识体系总览

下面这张图,把本章的核心知识点串起来了。你可以把它当作一个快速索引,以后写代码时忘了什么,回来瞄一眼就行。

Python基础回顾 · 知识体系 Python基础回顾 环境配置 基础语法 常用数据结构 函数与模块 Python 3.9+ venv虚拟环境 pip包管理 requirements.txt 变量与类型 条件判断 循环遍历 f-string格式化 列表(list) 字典(dict) 元组(tuple) 集合(set) 函数定义 参数与返回值 模块导入 项目结构 核心原则 一个函数只做一件事 · 模块按功能拆分 · 虚拟环境隔离依赖

这张图把本章内容分成了四个板块。你看,环境配置是地基,基础语法是工具,数据结构是容器,函数与模块是组织方式。四者缺一不可。

好了,基础回顾就到这里。这些东西看着简单,但真正用熟需要时间。我建议你打开编辑器,把上面的代码示例敲一遍,改改参数,看看输出。动手,是最好的学习方式。