程序是很容易出错的。因为某种古怪的原因,程序错误被称为bug,而查捕bug的过程称为调试(debugging)。
一个程序中可能出现3种类型的错误:语法错误、运行时错误和语义错误。对它们加以区分,可以更快的找到错误。
编程,特别是调试,有时候会引发强烈的情绪。如果你挣扎于一个困难的bug,可能会感到愤怒、沮丧以及窘迫。
有证据表明,人们会像对待人一样对待电脑。当电脑良好完成工作时,我们会把它们当作队友,而当他们难以控制、粗暴无礼的时候,我们会按照对待那些粗暴固执的人一样对待它们。
对这些反应行为有所准备,可能会帮助你更好地对待电脑。一种方法是把它当作你的雇员,它有一定的长处,如速度和精度,也有特定的弱点,如没有同情心和无法顾全大局。
你的任务是做一好经理:设法扬长避短,并找到方法控制你的情绪去面对问题,而不是让你的反应影响工作效率。
学习调试可能会带来挫折感,但它是一个有价值的技能,并在编程之外还有很多用途。
在计算机前阅读本书是一个好主意,因为你可以边看边试验书中的示例。
每当你试验新的语言特性时,应当试着故意犯错。例如,在”hello,world”程序中,如果少写一个引号,会发生什么?如果两个引号都不写,会怎么样?如果把print拼写错了,会如何?
这种试验会帮你记住所读的内容,也能帮你学会调试,因为这样能看到不同的出错消息代表着什么。现在故意犯错总比今后在编码中意外出错好。
少写1个引号:
两个引号都不写
print拼写错了
1.在print语句中,如果漏掉一个括号,或者两个都漏掉,会发生什么?
猜测:会发生语法错误--猜错了
实际结果:
漏掉一个括号:
程序会认为输入没有结束
漏掉两个括号:
语法错误,并给出正确输入提示
2.如果正尝试打印一个字符串,那么若漏掉一个或所有的引号,会发生什么?
漏掉1个引号:语法错误
漏掉所有的引号:
程序把hello当作是一个变量名,但是这个变量事先没有定义,所以会报nameError
3.可以使用一个负号来表示负数,如-2。如果在数字之前放一个正号,会发生什么?如果是2++2呢?
放一个正号:
2++2
进行了加法计算,但无论中间放几个+号,都视作1个+
4.在数学标记里,前置0是没有问题的,如02.在Python中也这么做会发生什么?
5.如果在两个值之间不放任任何操作符,会发生什么?
启动python解释器,把它当作计算器使用
1.在42分42秒中,一共有多少秒?
2.10千米相当于多少英里?提示:1英里相当于1.61千米
3.如果你用42分42秒跑完10千米,那么你的平均速度(跑1千米需要的分钟和秒数)是多少?平均速度是多少千米每小时?
计算公式:
1千米=1000米
时间=距离/速度
速度=距离/时间
距离=距离*时间
首先42分42秒是2562秒
是42.7分
约等于0.71小时
每分钟的平均速度是:0.23
In [36]: 10/42.7
Out[36]: 0.23419203747072598
跑1千米需要的分钟是:
跑1千米需要的秒数:
平均速度是多少千米每小时?(以小时为单位)
数学计算头疼-晕~! 也许我先在纸上把公式写下来,然后把数字往公式中套会容易的多