cs61A-study-lecture3
0 次浏览 / 0 条评论
目录
表达式和语句
表达式一般表现为 3+4 这种 语句一般表现为命令形式,如 def fn(x,y)或者是x = 4这种
控制流工具
条件,迭代,局部赋值
函数中的变量就是局部帧,也就是局部变量,对应的就是全局变量,也就是全局帧
def percent_difference(x, y):
return 100 * abs(x-y) / x
这样写的好处是避免了局部帧的使用,没有中间变量,看起来很简洁,但是一旦逻辑链增长,这样写出来的代码没人能看懂2333
def percent_difference(x, y):
diff = abs(x - y) # 第一步:算差值
percent = diff / x # 第二步:算比例
return 100 * percent
分开来写看起来确实变长了,但是确实易读性更高。
局部赋值的两个功劳:
-
安全隔离: 保护全局变量不被乱改,让程序像乐高积木一样可以放心拼接(模块化)。
-
化繁为简: 把复杂的数学逻辑拆解成有名字、好理解的小步骤。
测试
测试对于代码和项目是极其重要且必要的,可以帮助我们验证算法是否正确,是否符合预期。测试是一种系统地执行验证的机制。测试通常以另一个函数的形式存在,该函数包含对被测函数的一个或多个示例调用,然后根据预期结果验证返回值。与大多数旨在通用的函数不同,测试涉及选择并验证具有特定参数值的调用。测试还具有文档作用:它们演示了如何调用函数以及哪些参数值是合适的。
断言(Assertions):程序员使用 assert 语句来验证是否符合预期,例如验证被测试函数的输出。assert 语句包含一个处于布尔上下文中的表达式,后跟一行引用的文本(单引号或双引号均可),如果表达式求值为假,则会显示该文本。
当断言的表达式为真时,执行 assert 语句没有任何效果。当它为假时,assert 会引发一个错误并停止执行。rust中一旦断言为假程序就会panic。工程中一般不会将测试写在实际的工作代码中,而是会单独make一个文件夹用于给每一个模块进行单元测试。
python中的优雅测试方法
python3 -m doctest test.py