2. Python基础速通(一):Python环境搭建(Anaconda)、Jupyter Notebook使用、变量与数据类型、列表与字典

各位同学,欢迎来到Python基础速通的第一讲。

说实话,很多做储能数据分析的朋友,一开始都卡在环境搭建上。我见过太多人,代码写得挺好,结果装个库装了一整天,心态直接崩了。所以咱们第一步,先把地基打牢。

2.1 为什么我推荐Anaconda?

Python本身只是一个解释器,但做数据分析需要一堆库:NumPy、Pandas、Matplotlib……一个个手动装,不仅麻烦,还容易版本冲突。

Anaconda 就是来解决这个问题的。它是一个Python发行版,自带200多个常用库,还带了一个包管理器叫 conda

核心优势:

  • 一键安装,省去配环境的痛苦
  • 自带Jupyter Notebook,写代码和笔记二合一
  • 虚拟环境管理,不同项目用不同Python版本,互不干扰

我个人习惯,每个储能项目都新建一个独立环境。比如处理锂电池数据用一个环境,做光伏预测用另一个。这样哪怕某个库升级出问题,也不影响其他项目。

2.2 安装与验证

去官网下载Anaconda,选Python 3.9或3.10版本就行。安装时记得勾选「Add Anaconda to my PATH environment variable」——这一步很多人会忘,我刚开始也吃过这个亏。

装完后,打开终端(Windows用CMD或PowerShell,Mac/Linux用Terminal),输入:

conda --version

如果看到版本号,说明装好了。再输入 python 进入交互模式,试试:

print("Hello, 储能大数据!")

看到输出,环境就通了。

2.3 Jupyter Notebook:写代码的笔记本

Jupyter Notebook 是我最常用的工具。它把代码、运行结果、图表、文字说明都放在一个文件里,特别适合做探索性分析。

启动方式很简单,终端输入:

jupyter notebook

浏览器会自动打开一个页面,点右上角「New」→「Python 3」就能新建一个笔记本。

小技巧:Shift + Enter 运行当前单元格,并自动创建下一个。按 Esc + M 可以把单元格切换成Markdown模式,写笔记用。

我在项目中经常这样用:上半部分写分析思路(Markdown),下半部分写代码验证。一个文件就是一个完整的数据分析报告。

2.4 变量与数据类型

Python是动态类型语言,变量不需要提前声明类型。直接赋值就行:

# 数值型
battery_capacity = 100  # 整数,单位kWh
voltage = 3.7           # 浮点数,单位V

# 字符串
project_name = "储能电站A"

# 布尔型
is_charging = True

print(type(battery_capacity))  # <class 'int'>
print(type(voltage))           # <class 'float'>

这里有个坑,我必须要提醒你。

避坑指南: 我曾经在处理电池SOC数据时,把一个浮点数直接当整数用了,结果计算精度出了问题。Python里 3.73.70 是一样的,但 33.0 类型不同。做储能计算时,涉及电压、电流、容量,尽量用浮点数,别偷懒用整数。

2.5 列表:有序的数据集合

列表用方括号 [] 表示,可以放不同类型的数据。这在储能数据分析里太常用了——比如记录一组电池的电压值:

# 创建列表
voltages = [3.7, 3.8, 3.6, 3.9, 3.75]

# 访问元素(索引从0开始)
print(voltages[0])   # 3.7
print(voltages[-1])  # 3.75,负索引从末尾开始

# 切片:取前三个
print(voltages[:3])  # [3.7, 3.8, 3.6]

# 添加元素
voltages.append(3.85)
print(voltages)      # [3.7, 3.8, 3.6, 3.9, 3.75, 3.85]

# 列表长度
print(len(voltages)) # 6

你想想看,如果手动记录100个电池的电压,用列表几行代码就搞定了。我当年做电池组一致性分析时,就是用列表存了上千个电芯的电压,然后算标准差,找出异常电芯。

2.6 字典:键值对存储

字典用花括号 {},每个元素由「键:值」组成。适合存有结构的数据,比如一个电池模组的参数:

# 创建字典
battery_module = {
    "id": "BM-001",
    "capacity_kwh": 50,
    "voltage_nominal": 48,
    "cell_count": 16,
    "status": "正常"
}

# 访问值
print(battery_module["capacity_kwh"])  # 50

# 修改值
battery_module["status"] = "需维护"

# 添加新键
battery_module["temperature_c"] = 25.3

# 遍历字典
for key, value in battery_module.items():
    print(f"{key}: {value}")

实际应用场景: 我在做储能电站的资产管理系统时,每个电池簇就是一个字典,包含ID、容量、循环次数、健康状态等字段。几百个字典放在一个列表里,就是完整的资产台账。

2.7 本章知识体系

下面这张图,帮你理清今天讲的内容结构:

Python基础速通(一) 环境搭建 • Anaconda安装 • conda命令验证 • 虚拟环境管理 Jupyter Notebook • 启动与新建 • 快捷键操作 • Markdown+代码混合 变量与数据类型 • int / float / str • bool / type() • 动态类型特性 列表 • 创建与索引 • 切片与追加 • 长度计算 字典 • 键值对结构 • 增删改查 • 遍历字典 储能应用场景 • 电池电压列表 • 资产台账字典 • SOC数据存储

2.8 避坑总结

最后,我把今天容易踩的坑列一下:

常见错误 原因 正确做法
索引越界 列表索引从0开始,访问不存在的索引 len() 确认长度,或用 try-except
字典键不存在 直接访问不存在的键会报KeyError get() 方法,如 dict.get("key", 默认值)
类型混淆 整数和浮点数混用导致精度问题 涉及计算时统一用浮点数
环境混乱 不同项目共用同一个Python环境 每个项目建一个conda虚拟环境

嗯,今天就到这儿。把这些基础打牢,下一节我们就能开始处理真正的储能数据了。


公众号:蓝海资料掘金营,微信deep3321