CS 61A 2026 Fall 学习随笔
这是我学习 CS 61A 的随笔。为什么是随笔而不是笔记呢?一方面(至少)Python 我还是有基础的(当然后面就不学 Python 了,我这点基础也就没多大用处了),前两周对我来说都是一些查缺补漏的东西,所以我不想写详细的笔记,而是一点学习路上可能碰到的坑点。另一方面就是我很懒
读这个中文教材的同学们一定要记得配合原文食用!有些关键术语中文翻译的不是很好,再加上 26 年的课程相比于前几年也发生了很大变化。比如说,之前都是用 Ok 来检查你的代码的,26 年变成了 pytest(当然这两者都是基于 doctest 的)。
开始吧,我想到啥就写啥。
怎么食用?
我食用的方法一般是先看这周的 reading,再做对应的 lab / hw / proj。尽管 Week 1 里的 Slides 写着“一定要看视频”,可是我觉得作用不太大。我几乎不看视频和 lecture 里提供的幻灯片。
当然了我只是目前这么做,之后肯定会有所变化(
Week 1
1.3
An environment in which an expression is evaluated is a sequence of frames, depicted as boxes. ...
中文教材把 frames 译作「帧」。好难理解啊!如果翻译成「框架」之类的会好理解很多吧。至少我没有看出来「帧」和盒子的关联之处。
不过,这好像是一项约定俗成的翻译。不作深究。
Week 2
1.4 & 1.5
写 Python 程序时,除了最简单的函数,都该写文档字符串(docstring)。
按惯例,文档字符串用三引号括起来。第一行用一句话说明函数干什么,后面的行可以交代参数、讲清函数的行为:
def pressure(v, t, n):
"""Compute the pressure in pascals of an ideal gas.
Applies the ideal gas law: https://en.wikipedia.org/wiki/Ideal_gas_law
v -- volume of gas, in cubic meters
t -- absolute temperature in degrees kelvin
n -- particles of gas
"""
k = 1.38e-23 # Boltzmann's constant
return n * k * t / v同时,配合文档测试(doctest)可以方便地测试函数。方法为文档字符串里放一段调用该函数的交互式示例:
def sum_naturals(n):
"""Return the sum of the first n natural numbers.
>>> sum_naturals(10)
55
>>> sum_naturals(100)
5050
"""
total, k = 0, 1
while k <= n:
total = total + k
k = k + 1
return total测试:
>>> from doctest import run_docstring_examples
>>> run_docstring_examples(sum_naturals, globals(), True)
Finding tests in NoName
Trying:
sum_naturals(10)
Expecting:
55
ok
Trying:
sum_naturals(100)
Expecting:
5050
ok1.6
有点难的一集。我先放着,因为我的 hw2 还没做完 😞
Proj 1 Hog
搞懂了闭包就会很轻松。但是我也懒的写。交给之后的我自己 😡