cs61a
ok
ok
是 CS 61A 中用于测试作业的自动化工具,常见用法如下:
python3 ok -q question_name
→ 运行某个题目的测试(非交互)python3 ok -q question_name -i
→ 在测试失败时打开交互式解释器(重点)python3 ok -q question_name --trace
→ 打开可视化追踪(用来调试但不是交互式)python3 -i lab01.py
→ 打开 Python 并加载该文件,但不是用来调试测试的
Debugging
IndentationError
在 Python 中,4 个空格和一个 Tab(\t
)不是同一个东西!
一个 Tab 字符(
\t
)并不是等同于 4 个空格;它是一个单独的字符,长度显示上可能是 4 或 8 格,取决于编辑器设置;
而 4 个空格是 4 个真正的空格字符。
traceback
- 哪行代码写错了:倒数第二行
- 错误类型:最后一行
- 是谁导致谁:往上看调用栈
frame diagram
栈帧(frame):1.global 2.函数调用
变量:每个栈帧中定义的变量名和对应值。
堆内存(heap)引用(如列表、对象、字典等复杂类型)。
返回值(如果已返回)。
全局变量 / 内建变量(如 __main__
frame)。
lambda
lambda 是 Python 中用来创建匿名函数的一种方式:它相当于快速定义了一个函数,但 没有函数名
lambda 返回的是函数对象,而不是值!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 zerd1y-Blog!