错误信息说了什么

接管之后的异常里带着 argparse 的原话。运行下面这段程序,看它从两条错误信息里各认出了什么: import argparse class UsageError(Exception): pass class QuietPa

开始练习 →

补全:把报错换成人话

接管了 error 之后,补全 main:解析失败时把 err(扮演 stderr)里写一句「用法错误:」加原话,交回 2;成功交回 0。输出三次调用的退出码和 err 的行数。

开始练习 →

补全:不认识的单位单独一类

单位表里没有的单位,argparse 不会拦(长度单位太多,没用 choices)。现在它会以 KeyError 崩在字典取值上,被当成「其他错误」。补全 convert:先检查两个单位,不在表里就抛 ValueError,让 main 把

开始练习 →

补全:提示里要说出是哪个单位

光交回 3 还不够,用户还得知道是哪个单位不认识。补全 except 分支:把异常里带的那句话写到 err,再交回 3。输出退出码和 err 里的两行(用 / 拼)。

开始练习 →

补全:三类错误三个码

把前面几步合起来:用法错 2、单位错 3、其余成功 0。补全 main 里两个 except,输出五次调用的退出码。

开始练习 →

什么时候该从文件读

用户要把 200 个长度一次全换算掉。让工具支持 --file 数据.txt,而不是让用户敲 200 次命令,判断依据是【0】。

开始练习 →

配置文件解决什么

有用户想加一个自家用的单位「里 = 500 米」。把它放进配置文件而不是改源码,好处是【0】。

开始练习 →

配置文件读进来长什么样

用 configparser 读一段 INI 格式的配置。运行下面这段程序,看它把自定义单位并进单位表之后的结果: import configparser LEN = {"m": 1.0, "km"

开始练习 →

补全:从文件批量读数值

补全 read_values:从文件对象里逐行读,跳过空行,每行转成浮点数。输出读到的个数和总和。

开始练习 →

补全:把配置里的单位并进表

补全 load_units:从 INI 文本的 [len] 段读出所有自定义单位,转成浮点数并进 LEN。输出 3 里换成米、1 km 换成里的结果。

开始练习 →