综合练习:一个项目的完整工作流
这是什么:用 VSCode 从零做一个真实的小项目——命令行记账本(Python):新建项目、写代码、调试、格式化、配 git,走完「程序员的日常一天」。
为什么用:单点技能(快捷键、断点、插件)学完了,串起来才是工作流。以后你学Python 进阶、Flask、前端,每天就是在这条流水线上重复。
如何用:全程在 VSCode 里完成,别开系统记事本和外部终端——每一步都用前六章的招式。
任务:命令行记账本
一个运行在终端的小程序:输入花销,自动记账并打印汇总。先看最终效果:
(.venv) PS E:\ledger> python ledger.py 加 25 午饭
已记录:午饭 25.0 元
(.venv) PS E:\ledger> python ledger.py 加 120 打车
已记录:打车 120.0 元
(.venv) PS E:\ledger> python ledger.py 汇总
今日共 2 笔,合计 145.0 元
流程八步
① 建项目
新建文件夹 ledger → VSCode 打开文件夹 → 按上一栈的方法建 venv(终端里 python -m venv .venv)→ Ctrl+Shift+P → Python: Select Interpreter 选它 → 装 Python 插件。状态栏出现版本号才算就绪。
② 写代码
文件树新建 ledger.py,输入以下代码(感受自动补全帮你打字):
import sys
records: list[tuple[str, float]] = [] # (用途, 金额)
def add(reason: str, amount: float) -> str:
records.append((reason, amount))
return f"已记录:{reason} {amount} 元"
def summary() -> str:
total = sum(a for _, a in records)
return f"今日共 {len(records)} 笔,合计 {total} 元"
def main() -> None:
cmd = sys.argv[1]
if cmd == "加":
print(add(sys.argv[2], float(sys.argv[3])))
elif cmd == "汇总":
print(summary())
else:
print("用法:python ledger.py 加 <金额> <用途> 或 汇总")
if __name__ == "__main__":
main()
③ 跑起来
集成终端(Ctrl+`)里:
python ledger.py 加 25 午饭
python ledger.py 汇总
④ 调试一个 bug
把 汇总 写成 总和 再跑——走到 else 打印用法。别肉眼查,用调试器:在 main() 的 cmd = sys.argv[1] 行打断点,F5 启动(调试配置里加参数 "args": ["总和"],或临时改成 sys.argv = ["ledger.py", "总和"])——变量区里 cmd 的值一眼可见,定位即修复。
⑤ 格式化
Ctrl+, 开启 Format On Save(第 4 章),Ctrl+S 保存,代码自动理顺。
⑥ 配 git
左侧活动栏点源代码管理图标 → 初始化仓库 → 文件旁点 + 暂存 → 写提交信息 first commit → 提交。左下角状态栏出现分支名——Git 教程的活,VSCode 全程代劳图形界面。
⑦ 提交规范
以后每次改动:源代码管理面板会列出改了哪些文件的哪几行(点文件可对比),确认后写清楚「改了什么」再提交——commit message 别写「改了一点」。
⑧ 扩展挑战(选做)
- 加
删命令:python ledger.py 删 1移除第 1 笔(试试用调试器验证下标对不对) - 数据落盘:用
json模块把records存进ledger.json,重启不丢(呼应 JSON 教程) - 接上 Flask 把它变成 Web 接口
逐段中文精讲(核心代码)
records列表:(用途, 金额)元组的列表当内存账本;list[tuple[str, float]]的类型标注让编辑器补全和检查全程在线。add()/summary():两个函数各管一件事,f"..."格式化输出(Python 基础的模板字符串同款)。sys.argv:命令行参数列表——python ledger.py 加 25 午饭里,argv = ["ledger.py", "加", "25", "午饭"],第 0 个是文件名本身。if __name__ == "__main__"::直接运行本文件才执行main();被别的文件 import 时不执行——Python 的标准入口写法,现在照抄,面向对象之后自然懂。
学完这章去哪
你已经拥有一条完整的工作流:VSCode(写)→ 终端(跑)→ 调试器(查)→ git(存)。接下来: