Python 开发基础:环境、金额与 AI 编程|课后复习
今天学会了什么
能从自己的项目目录运行金额计算器,说明解释器、输入类型和金额单位;能读一次报错、检查一次 AI 修改,并用新输入复验。
对着这张图,说出源码、终端、解释器、操作系统各自在干什么;再把你自己的当前目录、Python 版本和 sys.executable 的输出,一个个对到图里的位置上。
今天讲了什么(对照复习)
下面逐项对应课堂正文。先盖住右边那一栏,凭记忆回答;卡住了再翻回左边同名的小节。光说得出名字不算会,还要能讲清它会做什么、什么时候会失效。
| 课堂对应章节 | 必须能解释的机制与边界 |
|---|---|
| 一段 Python 代码在电脑里怎样跑起来;运行方式补充:编译型语言和解释型语言 | 源码是文本,终端启动解释器;CPython 会生成字节码再执行,解释型不等于没有编译。Python 的生态适合应用开发,选型仍要看性能、团队与环境。 |
| 检查并安装 Python 3.12 与 TRAE Code CN;项目目录与 venv | 编辑器、Python、Git 分别验收。PATH 决定命令搜索,安装后重开终端;用 sys.executable 确认实际解释器。相对路径从当前目录解释;venv 隔离项目依赖,.venv 不入 Git。 |
| 变量、赋值和命名;四种基础类型与 Decimal 金额 | 顺序执行,先算右侧再赋值;赋值让名称指向值,改变数量不会自动重算旧金额;注释不执行;str/int/float/bool 表达不同含义,文本重复与数值乘法不同。名称写清业务和单位,例如 unit_price_yuan。金额从原始字符串创建 Decimal,不能先经 float;Decimal 仍有精度和舍入规则。 |
| 输出、字符串与 f-string | f-string 将表达式结果嵌入文本,.2f 控制两位小数展示,不修复来源误差;输出需同时说明商品、数量和元金额。字符串清理不能代替业务校验;输出常量即使碰巧正确也不代表计算正确。 |
| input、类型转换与失败边界 | input 得到 str,int 转换可能抛 ValueError;能不能转成数字,和这个数字业务上合不合法,是两回事。不要用 eval 执行用户输入。今天先读懂转换失败,D02 再处理异常分支。 |
| 常用算术运算;今天项目:电商商品金额计算器 | 识别 +、-、*、/、//、%、**;整数的 / 得到浮点结果,// 向下取整。今天的主公式是 Decimal 单价×整数数量,计算值与最终显示都要检查。 |
| 把 Traceback 当作定位线索 | 先读末行错误类型,再找项目文件和行号;SyntaxError 看语法、NameError 看名称、TypeError 看操作类型、ValueError 看具体值。提出一个原因假设,只改一处,再复跑原输入和变式。 |
| Git 保存可比较的起点 | Git 里有三块地方:工作区、暂存区、提交。add 只暂存当时内容,commit 不等于上传;status 看状态,diff 看未暂存修改,diff —staged 看待提交内容,log 找版本。首次未跟踪文件需直接阅读。 |
| AI 编程闭环 | 先给目标、允许修改的文件、禁止改动的业务规则和验收条件;再读候选与 diff、预测结果、运行正常和变化输入,最后决定接受。能运行之后,还要能指出输入、公式和输出各在哪里,并解释为何接受这些修改。 |
出了问题:怎么发现、怎么修、怎么验证
只在你自己那份课程副本或专用实验数据上复验,把改之前和改之后的真实结果都留下来。
| 风险/现象 | 提前预防 | 怎样发现 | 怎样处理 | 怎样复验 |
|---|---|---|---|---|
| 解释器或目录选错 | 运行前检查目录、版本和解释器路径 | 保留找不到命令/文件的原始输出 | 修正 PATH、项目目录或 TRAE 解释器后重开终端 | 同一文件在当前项目 venv 运行,记录真实路径 |
| float 金额或输出写死 | 金额从字符串构造,输出引用变量 | 手算后改变数量,核对数值和最后一行文字 | 恢复 Decimal 链路和动态格式化 | 原数量与另一数量都与手算一致 |
| 输入为 0、负数却仍计算 | 先约定数量须为正整数 | 对照能转换与业务是否合法 | D01 记录缺口,D02 补判断和异常处理 | D02 用同组输入检查拒绝行为,D01 不标记已修复 |
| 程序错误被整段重写掩盖 | 先保存基线和完整 Traceback | 指出错误类型、首个相关项目行和差异 | 只修原因所在的一处 | 原失败输入恢复,再用新输入检查 |
| AI 修改越界或提交漏改 | 限定文件并检查 status、两种 diff | 对比金额类型、公式、暂存内容 | 撤回越界候选,补入确需提交的修改 | 重新运行后核对提交内容和 log |
闭卷自测
先自己答一遍,再去运行或翻回课堂核对;不确定的地方标出来,别用 AI 的答案顶掉你自己的第一次判断。
- 解释 python 命令、TRAE 和 .py 文件各做什么;电脑有两个 Python 时用什么证据确认本次执行者?
- 为什么 Decimal(“0.1”) 与 Decimal(0.1) 不等价?把数量从 2 改成 3,应该检查哪些最终输出?
- input 得到的 “2”、整数 2、布尔 True 有何差别?举出一种程序未报错但业务结果错误的情况。
- 分别说出 SyntaxError、NameError、TypeError、ValueError 的定位起点;选一次你自己遇到的报错重讲修复过程。
- git add 之后又编辑文件,commit 会包含哪一版?AI 只改输出时,你会拒绝什么样的 diff?
再看一眼真实业务
对照预习的真实商品页记录,指出自己的输出缺不缺币种、数量、规格或金额说明。平台优惠和运费不能凭空加进今天的公式;记录业务观察与课程简化的区别。
今天留下什么,下节课怎么接着用
对照任务书 A—G,保留金额计算器、环境检查输出、正常与变化输入的手算对照、转换失败原始错误、0/负数缺口、一次 NameError 修复、AI diff 和 Git 提交。W01-D02 从这份可运行脚本继续做条件、异常和批量处理。
课内最后一段完成提交和待补项登记;课后可选回看,不新增必做编码。