AI速成课:从AI编程到构建智能软件
上QQ阅读APP看书,第一时间看更新

3.4 if语句和条件

现在我想介绍一个编程中非常有用的工具——if条件语句。

if语句被广泛用于检验一个语句的结果是否为真。如果检验结果为真,那么一些对应检验条件的指令便会被执行。我会用一些简单的代码向你展示这一点,比如如何辨别一个数字是正的、负的还是等于零。代码不长,所以我就直接在下面全都展示出来:

在第一行代码中,我们声明了一个新的变量a并且将其赋值为5。这就是我们即将要进行值的检验的变量。在下一行代码中,我们通过if条件语句检验了这一变量是否比0大。如果a比0大,那么后面缩进的代码段落中的指令就会被执行,显示“a is greater than 0”(a比0大)。

如果a不符合第一个条件,也就是a比0小或者等于0,程序就会进入以elif(else if的简写)为标志的下一个条件。这一语句会检查a是否等于0。如果是,就会执行缩进行的指令,显示“a is equal to 0”(a等于0)。

最后的条件是通过else引入的。else条件中包含的指令会在其他条件全部不符时执行。本例中,其他两个条件不符意味着a<0,因此会显示“a is lower than 0”(a比0小)。

很容易就能预测本例中代码的返回值,即第一个指令print('a is greater than 0')的结果。事实上,一旦你运行这一代码,就会得到:

简而言之,if被用来引入检验语句,并且它是第一个被检验的条件,elif被用来检验其他必须检验的条件,而else在之前的检验全都失败时才会被触发。

还有一点非常重要,那就是一旦一个条件为真,其他条件便不会被检验。所以,本例中,一旦进入了第一个条件并且得到它为真,便不再检验其他语句。如果你想要检验其他条件,那么你需要将elif和else语句替换为一个新的if语句。新的if总是会检查和它处于同一行的新条件;因此,if条件语句中的条件总是会得到检验。

练习

构建一个用于检查数字是否能被3整除的条件语句。

提示:你可以使用一个叫作模(modulo)的数学表达式。进行模运算时,返回的是两个数字除法运算中的余数部分。在Python中,模用%表示。比如:

5%3=2

71%5=1

本练习的答案可以在GitHub页面的Chapter 03/If Statements/homework.py文件中找到。