循环到一半时的变量

场景:一个累加程序只打印最终结果。现在怀疑中间某一轮就算歪了,需要看那一轮的现场。 任务:~/work/walk.py 只打印最终的 acc。找出 ~/题目.txt 里指定的那一轮(i 等于某个值)走到「检查点」那一行时 acc 的值。 可

开始练习 →

崩溃现场的那条记录

场景:一个建树程序读几十条记录,其中一条数据有问题。报错只说 'NoneType' object has no attribute,并没有说是哪一条。 任务:python3 ~/work/tree/tree.py 会崩。找出

开始练习 →

最省内存的读法

处理几百万行的日志文件,内存占用最小的读法是【0】。

开始练习 →

热点看哪一列

用 python3 -m cProfile -s cumtime 找热点时,最该先看的是【0】最大的函数。

开始练习 →

边读边产出

补全生成器 numbers(lines):用 yield 逐个产出每行里的整数,跳过不是整数的行,不要先攒成列表。输出 是否生成器/总和。

开始练习 →

大文件一读就内存不够

场景:一个统计脚本在测试数据上好好的,一上线跑几十万行的日志就 MemoryError——那台机器给它的内存很少。 任务:改 ~/work/big/count.py,让它在内存很紧时也能处理大文件,输出 行数/5xx 个数/最大耗时 不变。

开始练习 →

找到热点并提速

场景:一个去重统计脚本在几千行上还行,线上几万行时慢得没法用。先别猜,让分析器告诉你时间花在哪。 任务:先用 python3 -m cProfile -s cumtime dedup.py ids.txt 找到热点,再改掉它。输出必须和原来

开始练习 →

错误提示写到哪

命令行工具的错误提示应该写到【0】,这样用管道接它的输出时数据不会被弄脏。

开始练习 →

好测试的标准

一条好的单元测试,最重要的是【0】。

开始练习 →

日志里的三个数

逐行统计日志:字段数不是 5、或状态码/耗时不是整数的算坏行。统计好行数、状态码 ≥ 500 的行数、坏行数和出现最多的路径,输出 好行|错误|坏行|路径。

开始练习 →