程序需要能够根据输入做不同的事情。下面给出几个例子:
如果 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 的相应语句块。
现在来讨论缩进和代码块。