上QQ阅读APP看书,第一时间看更新
2.1.5 语义错误——答非所问
在现实生活中,时不时会遇到这样的情况:你明明想表达A的意思,但与你沟通的人可能理解成B的意思了,或者说的是A意思,却被听者听成B意思了。这种情况多在语言表述不清楚或看问题角度不同时发生。我们经常将这种情况调侃为思想没在一个维度。
在Python代码的编写过程中也经常会发生类似的问题,此类问题称为语义错误(semantic errors)。
程序发生语义错误时,并不会立即给我们反馈,它会继续执行,不会发出错误信息,这种错误需要我们自己去发现,需要去比对输出的结果和我们的预期是否一致才能判定,否则可能就一直错误下去,直到被发现。
这种错误的发生大多是因为我们对代码的运行机制了解得不够,自以为编写的代码是按自己预想的方式运行的,但实际上计算机编译出来的代码是按另外一种方式运行的。还有可能是你解决问题的思路本身就是错的,写出来的程序执行的结果当然会是错的。
查找语义错误并没有那么容易,它需要你根据结果进行推理,推理的过程有的简单,有的复杂,具体需要查看程序是怎么设计的,编写是否复杂,是否容易弄明白程序到底在做什么。