Python在金融中的应用 · 第一部分

第二节:IDE、Notebook与代码调试

写代码不只是“打开一个软件输入命令”。需要知道代码写在哪里、怎样运行、结果在哪里、报错怎么看、AI 什么时候能帮忙。本节把 IDE、Jupyter Notebook、`.ipynb` 与 `.py` 的关系讲清楚。

1. IDE 是什么,为什么需要它

IDE 可以理解为写代码的工作台。普通文本编辑器只能写字,IDE 除了写代码,还能运行代码、管理文件、打开终端、显示报错、调试变量,有些 IDE 还可以接入 AI 辅助解释和修改代码。

JupyterLab / Notebook

适合数据分析、课堂展示、逐步运行和图文混排。代码、结果、图表和解释可以放在同一个 Notebook 里。

Trae / Cursor

更强调 AI 辅助编程。适合让 AI 帮助解释报错、检查代码、提出修改建议,但不能让 AI 替你完成理解。

VS Code / PyCharm

适合较完整的代码项目。它们也能配合 Jupyter Notebook 使用,但需要正确选择 Python 环境和 Notebook 内核。

本课程不是要求只能用某一个软件,而是统一使用 `.ipynb` 作为课程文件格式。IDE 可以选择 Trae、VS Code、PyCharm 或 JupyterLab,只要能稳定打开和运行 Notebook。

2. `.ipynb` 和 `.py` 的区别

很多同学大一学习 Python 时使用的是 `.py` 文件。那种方式非常适合训练语法、条件语句、循环、函数和程序结构。本课程进入金融数据分析后,会统一使用 `.ipynb`,原因是 Notebook 更适合把“金融问题—代码—结果—解释”放在一起展示。

ipynb 与 py 两种写 Python 的方式
ipynb 与 py:两种写 Python 的方式
比较项目.ipynb Notebook.py Python 脚本
文件本质Notebook 文档,由多个 cell 组成,可以包含代码、Markdown 说明、公式、表格和图形输出。普通文本代码文件,主要保存 Python 代码。
运行方式可以一个 cell 一个 cell 运行,适合逐步检查每一步结果。通常从上到下整体运行,适合较完整的程序或项目脚本。
课堂展示更方便展示修改过程、输出结果和文字解释。代码结构清楚,但结果和说明通常要另外呈现。
金融数据分析适合边读取数据、边观察表格、边画图、边写解释。适合把已经成熟的分析流程整理成可重复执行的脚本。
本课程定位主格式。课程材料、练习和作业尽量使用 Notebook。不会放弃。后续可以把成熟 Notebook 整理成 `.py` 脚本。

要注意:Notebook 可以分段运行,所以也容易出现“上面某个 cell 没运行,下面结果却看起来正常”的问题。提交作业前,需要从头重新运行一遍,确认结果可以完整复现。

3. 本课程为什么统一使用 Notebook

本课程的写代码环境
本课程的写代码环境

金融数据分析不是只交一段代码。更重要的是说明:为什么这样定义变量,数据从哪里来,单位是什么,结果是否合理,图表说明了什么。Notebook 适合把这些内容放在一个文件中。

  1. 先写金融问题。用 Markdown cell 写清楚要解决的问题,例如“计算小微信贷在不同违约概率下的预期收益”。
  2. 再写代码。用 Code cell 写输入假设、计算过程和输出结果。
  3. 马上观察结果。每运行一步,就能看到表格、数字或图形。
  4. 补充解释。在结果下面继续写 Markdown,说明这个结果的金融含义、限制和需要检查的地方。

官方 Jupyter 文档也把 Notebook 描述为由代码 cell、Markdown cell、输出等组成的文档。这个结构正好适合课程中逐步展示金融分析过程。

4. 第一个 Notebook 应该怎样组织

建议每一个 Notebook 都按固定顺序组织。这样老师、同学和以后的自己都能看懂。

# Markdown cell
## 小微信贷预期收益计算
本 Notebook 用一个简单例子说明贷款金额、利率、违约概率和违约损失率如何影响预期收益。

# Code cell
loan_amount = 100000
annual_rate = 0.06
default_probability = 0.08
loss_given_default = 0.45

interest_income = loan_amount * annual_rate
expected_loss = loan_amount * default_probability * loss_given_default
expected_profit = interest_income - expected_loss

print("利息收入:", interest_income)
print("预期损失:", expected_loss)
print("预期收益:", expected_profit)

# Markdown cell
结果解释:
这只是一个非常简化的计算。真实授信还需要考虑客户现金流、行业周期、担保方式和普惠金融服务目标。

这个结构比只写代码更适合学习。因为金融分析最终不是让电脑输出一个数字,而是让人理解这个数字为什么出现、能不能相信、可以怎样用于判断。

5. 从下载 TraeWork 到运行第一个 Notebook

下面把从安装软件到运行课程 Notebook 的路径完整走一遍。每一步都要先确认当前状态,再进入下一步;遇到按钮名称略有变化时,以官方页面和你电脑上显示的文字为准。

Trae 官方下载中心页面,显示 TraeWork 桌面端下载选项
Trae 官方下载中心实景:选择 TraeWork 桌面端和对应系统
TraeWork CN Code 模式界面
TraeWork CN Code 模式:进入代码工作区

5.1 下载正确的桌面客户端

  1. 只从官网进入下载中心。打开 Trae 官方下载中心,不要通过来历不明的网盘、破解站或搜索广告下载。下载中心会根据平台显示 TraeWork 的桌面端选项。
  2. 选择 TraeWork 桌面客户端。在页面的 TraeWork 区域选择“桌面端”,不要误选移动端或网页端。用户本机若使用 macOS,选择 macOS 12.0+;Windows 电脑选择 Windows x64。官网当前把“下载 TraeWork macOS 版”和“下载 TraeWork Windows x64 版”分开列出,版本和系统要求以后可能更新。
  3. 完成安装并启动。macOS 下载后打开安装包,将应用拖到“应用程序”;Windows 下载后运行官方安装程序并按系统提示完成安装。首次打开可能要求登录或显示服务条款,只在确认来源为 `trae.cn` 时继续。不要把账号密码、课程数据或客户数据写入公开示例。
  4. 确认你打开的是国内版。课程使用 Trae CN。若登录页跳转到国际版域名或显示地区不可用,先关闭代理,重新从 https://www.trae.cn/download 下载国内版客户端;不要混用 Trae CN 与 Trae AI 的安装包。

下载完成后可以在“关于”或应用菜单中确认版本。Trae 的产品名称和下载入口可能随版本调整,因此页面中的官方链接比第三方教程更可靠。

5.2 在左上角切换到 Code 模式(Trae CN)

TraeWork CN 左上角 Work、Code、Design 模式切换界面
TraeWork CN 的模式切换位置:左上角可以在 Work、Code、Design 之间切换
  1. 观察左上角模式选择。启动 TraeWork CN 后,窗口左上角会看到 Work、Code、Design 等模式标签或下拉入口。
  2. 选择 Code 模式。点击左上角的模式入口,选择“Code”;国内版界面可能显示为“Code 模式 / Trae CN”。Code 模式更接近传统 IDE,适合打开本地项目、编辑代码、运行 Notebook、查看终端和调试报错。
  3. 检查是否切换成功。中间工作区应出现代码编辑入口或“Code with TRAE”提示;左侧不再只是任务列表,而是可以使用资源管理器、搜索、源代码管理、运行和调试等开发工具。
  4. 不要把 Work 模式当成 Notebook 编辑器。Work 模式适合用自然语言交办一个完整任务;本课程要求逐格编写和解释代码,因此需要在 Code 模式中打开 `.ipynb`,自己保留每一步修改过程。

官方快速入门文档:TraeWork Web 与桌面端快速入门。如果官方文档改版,优先查看其中关于工作模式切换和桌面端下载的最新说明。

5.3 打开扩展商店,安装 Jupyter 插件

Trae CN IDE 扩展商店搜索 Jupyter 的真实界面
Trae CN IDE 扩展商店:搜索 Jupyter,确认发布者为 ms-toolsai
Trae CN IDE 中打开小微信贷 Notebook 的真实界面
Trae CN IDE 中打开课程示例 Notebook 的真实界面
  1. 进入扩展视图。在 Code / IDE 界面左侧活动栏找到方块形的“扩展”图标,点击后进入“扩展:商店”。如果左侧图标被隐藏,可使用命令面板,搜索“Extensions: View Extensions”。
  2. 搜索准确名称。在搜索框输入 Jupyter,不要只输入“Notebook”。找到名称为 Jupyter 的扩展,发布者应为 ms-toolsai。它是微软维护的扩展,提供 Notebook 单元格、内核选择、运行、输出和调试支持。
  3. 点击安装。如果按钮显示“安装”,点击并等待完成;如果显示“管理”或“已安装”,说明当前客户端已经装好。Jupyter Keymap、Jupyter Notebook Renderers 等配套扩展可能会随主扩展一起安装,不需要重复下载。
  4. 必要时补装 Python 扩展。搜索并安装发布者为 ms-python 的 Python 扩展。Jupyter 插件负责 Notebook 界面,Python 扩展负责解释器、环境发现和调试;两者不是同一个插件。

官方扩展页:Jupyter Extension for Visual Studio Code。官方说明特别强调:扩展本身不是 Python 内核,仍然需要一个安装了 Jupyter / ipykernel 的 Python 环境。

5.4 新建 xxx.ipynb 并选择 Python / conda 内核

Trae CN IDE Notebook 顶部选择内核按钮和 Python 代码单元格
Notebook 顶部的“选择内核”入口,以及代码单元格中的 Python 代码
  1. 先打开课程文件夹。选择“文件 → 打开文件夹”,建立一个专门的课程目录,例如 python-finance。建议在其中建立 notebooks、data、figures 三个子文件夹,避免把数据、代码和图片混在一起。
  2. 新建 Notebook。在资源管理器中点击“新建文件”,输入一个有意义的文件名,例如 02-small-loan-demo.ipynb。不要使用 新建文本文档.ipynb.txt 这种双重扩展名;文件名最后必须真正以 .ipynb 结尾。
  3. 选择 Python 内核。打开 Notebook 后,点击右上角“选择内核”。如果已有虚拟环境,选择课程环境,例如 Python Finance;如果使用 conda,选择相应的 conda 环境。内核就是“真正执行每个代码 cell 的 Python 进程”,不是文件名,也不是 AI 助手。
  4. 先弄清 conda 是什么。conda 是一个环境和包管理工具,可以为不同课程或项目创建彼此隔离的 Python 环境,也可以管理 NumPy、Pandas、Jupyter 等依赖。Anaconda 是一个较完整的发行版,通常已经包含 conda、Python 和许多常用数据科学包;Miniconda 则是更轻量的安装方式,先提供 conda 和基础 Python,再按需要安装依赖。两者都可以创建课程环境。

    官方资料:conda 环境管理文档;如果选择完整发行版,可查看 Anaconda 官方下载页。

  5. 需要时创建课程环境。在终端中可以执行下面的最小示例;如果已经有可用环境,不必重复创建:
    conda create -n python-finance python=3.11
    conda activate python-finance
    conda install jupyter ipykernel pandas numpy matplotlib
    看到命令行前面出现 (python-finance),通常表示已经进入这个环境。之后再启动 Trae 并选择同名内核。
  6. 看不到环境时,先在 Trae 终端安装内核。打开终端,激活你打算使用的环境,再执行:
    python -m pip install --upgrade pip
    python -m pip install jupyter ipykernel
    python -m ipykernel install --user \
      --name python-finance \
      --display-name "Python Finance"
    macOS / Linux 常用 python3;Windows 如果 python 不可用,可以尝试 py。安装后回到 Notebook,重新打开“选择内核”。
  7. 先运行一个最小检查。在第一个 Code cell 输入并运行:
    import sys
    print(sys.executable)
    print(sys.version)
    输出路径应该指向你刚刚选择的环境。若路径来自另一个环境,说明内核选错了,即使代码暂时能运行,也可能在导入 Pandas、NumPy 时遇到版本问题。

5.5 用一个金融例子验证 Notebook 是否工作

不要一打开 Notebook 就运行很大的项目。先用一个可以手算的小微信贷例子验证“内核—代码—输出”链路:

# Code cell 1:输入假设
loan_amount = 100_000          # 贷款本金,元
annual_rate = 0.06             # 年利率 6%
default_probability = 0.08     # 违约概率 8%
loss_given_default = 0.45      # 违约损失率 45%

# Code cell 2:计算预期结果
interest_income = loan_amount * annual_rate
expected_loss = loan_amount * default_probability * loss_given_default
expected_profit = interest_income - expected_loss

print(f"利息收入:{interest_income:,.2f} 元")
print(f"预期损失:{expected_loss:,.2f} 元")
print(f"预期收益:{expected_profit:,.2f} 元")

每次运行后要看什么

  • 输出是否来自刚刚选定的 Python 环境。
  • 利息收入、预期损失和预期收益的单位是否都是元。
  • 违约概率和损失率是否写成了小数,而不是把 8 和 45 直接代入。
  • 修改一个假设后重新运行,结果是否随之变化。

一个常见错误

如果先运行了第二个 cell,再修改第一个 cell,却没有重新运行第一个 cell,Notebook 里的变量可能仍然是旧值。提交或展示前,使用“全部运行”,确认从头到尾都能复现。

5.6 使用侧边栏的豆包 / Trae AI 助手

不同版本可能把侧边栏显示为“豆包 AI 助手”“TRAE”或“AI 助手”。它们都可以作为伴学工具:解释报错、指出可能原因、生成一小段预处理代码,但不能代替你判断数据是否合理。

  1. 先保留完整报错。不要只说“代码不能运行”。复制错误类型、出错 cell、输入数据的列名和你期望的结果;隐去密码、手机号、身份证号、客户姓名和真实账户信息。
  2. 让 AI 先解释再修改。可以使用提示词:请先解释这个错误为什么发生,再给出最小修改。逐行说明修改后的代码,并提醒我需要检查哪些金融含义。不要重写整个 Notebook。
  3. 用小任务生成预处理代码。例如:请为一个包含 loan_id、income、loan_amount、default_flag 的小微信贷表生成 Pandas 缺失值检查代码。先说明每一步目的,不要虚构列名,不要删除原始数据。
  4. 自己运行、自己解释、自己验算。把 AI 建议粘贴到新的 cell,逐行运行;看懂后再合并到正式代码。对金融数据尤其要检查样本筛选、时间范围、单位、缺失值处理和是否发生数据泄漏。

不要使用“帮我完成作业”作为唯一指令,也不要提交自己无法解释的 AI 代码。AI 最有价值的地方是帮助你定位问题、比较方案和练习表达,而不是让你跳过思考。

5.7 常见问题排查

现象优先检查处理方式
扩展商店搜不到 Jupyter是否在 Code / IDE 模式;网络是否可访问扩展市场重新进入扩展视图,搜索完整名称;必要时查看官方 Marketplace 页面,确认扩展标识为 ms-toolsai.jupyter。
Notebook 没有“选择内核”文件是否真的是 .ipynb;Jupyter 和 Python 扩展是否启用关闭并重新打开文件;确认没有保存成 .ipynb.txt。
内核列表为空Python 环境中是否安装 ipykernel在目标环境执行安装命令,再刷新内核列表;不要把包装到另一个环境。
ModuleNotFoundError当前 Notebook 内核和安装依赖的环境是否相同先运行 sys.executable,再在同一环境中使用 python -m pip install 包名。
AI 生成的代码能运行但结果奇怪列名、单位、筛选条件和数据时间范围回到金融问题本身,打印中间结果并用手算一个小样本;不要只根据“没有报错”判断正确。

5.8 官方入口与继续阅读

6. 不想折腾 IDE 时:使用阿里云天池 Notebook

如果电脑环境始终配置不顺利,可以把天池 Notebook 当作在线备用方案。它的使用方式接近 Google Colab:浏览器打开一个云端 Notebook,在服务器上运行 Python,结果保存到在线项目中。它适合快速体验,不作为本课程的首选开发环境。

阿里云天池 Notebook 官方页面,显示新建 Notebook 与我的实验室入口
阿里云天池 Notebook 官方页面:新建 Notebook、进入我的实验室并浏览公开项目

它与本地 Trae 的区别

  • 天池运行在云端,主要依赖浏览器和账号;Trae 运行在自己的电脑上,可以访问本地文件夹和终端。
  • 天池省去 Python、conda、Jupyter 的本地安装;Trae 更适合长期项目、Git 管理和逐步调试。
  • 天池的实例和免费资源有生命周期,关闭页面或超过平台限制后可能释放;本地环境更容易保持稳定。

它与 Google Colab 的关系

两者都属于云端 Notebook,均可以在浏览器中编写代码、运行 cell 和查看图形。天池更容易接触中文数据科学社区、阿里生态和天池数据集;Colab 更常用于 Google 账号体系和海外教程。可以把天池理解为 Colab 的一个国内替代选择,但不要把二者的包版本、文件路径和算力配置想当然地当成完全相同。

6.1 注册与进入天池实验室

  1. 打开官方入口。访问 阿里云天池 Notebook。页面右上角通常有“登录 / 注册”入口;可以使用阿里云账号或页面支持的账号方式完成注册。不要从不明链接输入账号密码。
  2. 进入 Notebook 工作区。登录后回到天池 Notebook 页面,点击“新建 Notebook”或“我的实验室”。如果页面要求先创建项目,使用清晰的项目名,例如“Python金融练习”,并选择默认的 Python Notebook 环境。
  3. 新建或 Fork 一个 Notebook。新建 Notebook 适合从空白文件开始;公开项目可以先阅读,再使用“Fork / 复制”生成自己的版本。课程练习建议先复制到自己的项目,不要直接修改他人的公开文件。
  4. 运行第一个 cell。在 Markdown cell 写标题,在代码 cell 输入小微信贷例子,点击运行按钮,观察输出。第一次启动可能需要等待云端实例准备;不要连续点击多次。
  5. 保存与导出。定期保存 Notebook,并把重要版本下载为 .ipynb 或导出 HTML。只保存在云端的文件不等于永久备份,课程作业还应保留一份本地副本。

6.2 使用时必须知道的限制

官方入口:天池 Notebook;平台介绍与资源说明可参考天池课程首页。页面按钮、免费资源政策和实例时长可能调整,实际使用时以登录后的官方界面为准。

7. 用 AI 辅助调试,但不要让 AI 替学

IDE 中接入 AI 后,最容易犯的错误是直接让 AI 写完整答案。正确做法是先自己写 Notebook 的问题、变量和最小代码,再请 AI 帮助解释报错和给出最小修改。

建议提问

“我在 Notebook 中运行这个 cell 报错。请先解释错误原因,再给出最小修改,并说明修改后每一行代码的作用。最后提醒我需要检查哪些金融含义。”

不要这样问

“帮我完成这个作业。”这种问法会让学习过程被跳过。即使得到了能运行的代码,也不代表真正掌握。

AI 给出的代码必须自己运行、自己解释、自己检查单位和结果范围。不能复制一段看不懂的代码提交。

8. 本节练习

练习 A:解释格式差异

用自己的话说明 `.ipynb` 和 `.py` 的区别,并解释为什么本课程更适合使用 `.ipynb`。

练习 B:设计 Notebook 结构

为“小微信贷预期收益计算”设计一个 Notebook,大致写出 Markdown cell 和 Code cell 的顺序。

练习 C:检查运行顺序

故意打乱一个 Notebook 的运行顺序,观察变量未定义或结果不更新的问题,再从头重新运行。

练习 D:写一个好问题

把“代码错了,帮我改”改写成包含目标、代码、报错和金融含义检查要求的问题。