MIT600SC笔记REC3&7


REC3

忍受印度英语(所有的rec都是在复习之前的小程序,如果不打算学习python可以不看,所以后面笔记不记这个了)

第七课:Debugging

python(也包括其他语言)中的浮点数,2进制,2进制无法精确显示小数,默认情况下输入0.1电脑得到0.10000000000000001,一个17位的近似数,大部分情况下使用小数都是安全的。无法比较两个浮点数。两数相减,只要结果足够小,就可以认为两数足够接近或者相等。

bugs更应该被称为mistakes

Debugging的目标:不是快速的消除一个bug,而是向bug-free的程序前进。

debug是成为一个好程序员最重要的部分,系统和有效率地思考。

debugger-用来找到bug的工具,但是不建议使用。大多数程序员用print来debug。

print的本质是在找程序里面歪的地方,好debugger的关键是有系统的搜索。

Search for bugs using binary search. 二分法找bug

不是他为什么没有产生我想要的结果,而是How could it have done it have done.

study available data— program text — test results

Form hypothesis (consistent with data) –> design& run repeatable experiment

Potential to refute hypothesis

Find smaller input on which program fails

No such thing as the bug. 发现一个bug还有其他的。

写一段跟程序无关的代码,让debug更容易。Use a test harness. 看起来麻烦但实际上帮助省力。



发表评论

电子邮件地址不会被公开。 必填项已用*标注