首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》7.1 测试,测试

关灯直达底部

程序需要能够根据输入做不同的事情。下面给出几个例子:

  • 如果 Tim 给出的答案正确,就为他加 1 分;

  • 如果 Jane 击中外星人,就发出爆炸声;

  • 如果文件没找到,就显示错误消息。

决策时,程序要做出检查(完成一个测试),查看某个条件是否为真。在上面的第一个例子中,这个条件就是“答案正确”。

Python 完成测试的方法很有限,而且每个测试只有两个可能的答案:真(true)或者假(false)。

Python 在测试时可能会问下面这些问题。

  • 这两个东西相等吗?

  • 其中一个是不是小于另一个?

  • 其中一个是不是大于另一个?

不过等一下,刚才说过第一个例子的测试条件是“答案正确”,但是这不属于我们能做的测试,至少不能直接测试。这说明,我们需要用一种 Python 能理解的方式来描述测试。

想要知道 Tim 的答案是否正确时,我们需要知道正确的答案是什么,还要知道 Tim 的答案。可以写成这种形式:

如果 Tim 的答案是正确的,这两个变量就是相等的,所以条件(condition)为真(true)。如果他的答案不正确,这两个变量就不相等,条件则为假(false)。

术语箱

完成测试并根据结果做出判断称为分支(branching)。程序根据测试的结果来决定走哪条路,或者沿哪个分支执行。

Python 使用关键字 if 来测试条件,如下:

术语箱

代码块(block)是一行或放在一起的多行代码。它们都与程序的某个部分相关(比如一个 if 语句)。在 Python 中,通过将块中的代码行缩进来构成代码块。

if 行末尾的冒号告诉 Python 下面将是一个指令块。这个块包括从前面的 if 行以下直到下一个不缩进的代码行之间的所有缩进代码行。

术语箱

缩进(indenting)是指一个代码行稍稍靠右一点。它不是从最左端开始,而是前面有一些空格,所以会从距左边界几个字符之后开始。

如果条件为真,就会完成之后代码块中的所有工作。在前面的小例子中,第 2 行和第 3 行构成了第 1 行中 if 的相应语句块。

现在来讨论缩进和代码块。