为什么 main 要收 argv

整条路线里 main 一直写成 main(argv),而不是在函数里面直接读 sys.argv。这样写最大的收益是【0】。

开始练习 →

交付前最该验什么

工具写完了。交付前最能一次暴露问题的验法是【0】。

开始练习 →

整套工具跑一遍

下面是组装好的 conv 精简版。运行它,看五组参数各给出什么(结果或退出码): import argparse LEN = {"m": 1.0, "km": 1000.0} class Usag

开始练习 →

第一步:把解析器搭起来

补全 build_parser:三个子命令 temp / len / mass,每个都有 value(浮点数)、--from(存到 src,默认分别 c / m / kg)和 --to。输出解析出的子命令名和三个默认起点单位。

开始练习 →

第二步:换算核心

补全 convert:温度先统一成摄氏再换到目标;长度和质量查各自的表,单位不在表里抛 ValueError。输出四次换算的结果。

开始练习 →

第三步:把 main 接起来

解析器和换算都有了。补全 main:解析失败交回 2、没给子命令把帮助打到 hlp 并交回 2、单位错交回 3、成功打印结果交回 0。输出五次调用的退出码、结果管道的内容、帮助有没有打出来。

开始练习 →

第四步:给工具写一个测试壳

补全 run:调用一次 main,把这次打到 out 的内容和退出码一起交回来(每次调用前把 out 清空)。输出三组用例的「结果:退出码」。

开始练习 →

交付:五条验收条款一起过

run 已经给好。补全五条验收:正常换算对、单位错交回 3、用法错交回 2、不给子命令打帮助且交回 2、错误不进结果管道。输出五个 1/0。

开始练习 →

装成命令之后,机器上多了什么

把 conv.py 装成一条 conv 命令之后,和之前敲 python3 conv.py 相比,真正变了的是【0】。

开始练习 →

先把要交的数算出来

真机上会用到这个工具算 3 km 换米、1 mi 换米。先在这里把它们跑一遍,看输出格式: LEN = {"m": 1.0, "km": 1000.0, "mi": 1609.34

开始练习 →