补全:--format 接到写出函数上

补全 run:按 a.format 选择写 CSV 还是 JSON(写进内存)。输出两种格式各写出多少行。

开始练习 →

数据工具的用例分几类

给这个数据工具写测试,最少要覆盖的三类输入是【0】。

开始练习 →

为什么不直接 assert

本节用 CHECK(cond) 记录跑了几条、过了几条,而不是一句句 assert。这样做的好处是【0】。

开始练习 →

三条用例的结果

下面对 clean 跑三类用例。运行程序,看 跑了几条 / 过了几条: import csv, io ran, passed = 0, 0 def CHECK(cond): global ran, passed ran +

开始练习 →

挂掉的那一条

同一套 CHECK,这次用例里有一条的期望值写错了。运行程序: ran, passed, failed = 0, 0, [] def CHECK(name, cond): global ran, passed ran +=

开始练习 →

补全:写一条正常用例

补全用例:对两行正常数据跑 clean,断言好行数是 2、坏行为空。输出 跑了/过了。

开始练习 →

补全:空文件和坏数据各一条

补全两条用例:只有表头时好行坏行都为空;一行 five 时坏行号是 [2]。输出 跑了/过了。

开始练习 →

补全:写出去再读回来不能变

补全「往返」用例:把 table 写成 CSV 再用 DictReader 读回,断言行数一样、第一家店的总额还是 44.0(注意读回来是字符串)。输出 跑了/过了。

开始练习 →

补全:让报告说出挂了哪条

补全 CHECK:记名字,挂了就把名字收进 failed;再补全最后那句汇总。输出「跑了/过了/挂的名字」。

开始练习 →

流水线的顺序为什么不能乱

这个工具的主流程是「读 → 清洗 → 转换 → 写」。把清洗挪到转换后面,会出的问题是【0】。

开始练习 →