image.png
image.png

5.2 条件测试

每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True 还是False 来决定是否执行if 语句中的代码。如果条件测试的值为True ,Python就执行紧跟在if 语句后面的代码;如果为False ,Python就忽略这些代码。

5.2.1 检查是否相等

image.png

5.2.5 检查多个条件

你可能想同时检查多个条件,例如,有时候你需要在两个条件都为True 时才执行相应的操作,而有时候你只要求一个条件为True 时就执行相应的操作。在这些情况下,关键字and 和or 可助你一臂之力。

image.png

为改善可读性,可将每个测试都分别放在一对括号内,但并非必须这样做。如果你使用括号,测试将类似于下面这样:

image.png

5.2.6 检查特定值是否包含在列表中

要判断特定的值是否已包含在列表中,可使用关键字in 。

image.png

5.2.7 检查特定值是否不包含在列表中

还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in。
image.png

5.3.3 if-elif-else结构

经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else 结构。Python只执行if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

在现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的游乐场:
4岁以下免费;
4~18岁收费5美元;
18岁(含)以上收费10美元。
image.png
if-elif-else是采取了取交集的方式,进行的运算。

5.3.4 使用多个elif代码块

我们在使用elif代码块的时候,相当于对集合进行顺序切割。

image.png

5.3.5 省略else代码块

Python并不要求if-elif 结构后面必须有else 代码块。
image.png

5.3.6 测试多个条件

if-elif-else 结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了的测试后,Python就跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。

意思就是,if-elif-else只执行一次。

但是如果我们使用if if if就可以执行很多次。

5.4 使用if语句处理列表

image.png
image.png

5.4.2 确定列表不是空的

在运行for 循环前确定列表是否为空很重要。

image.png
image.png

我们进行了简单检查,而不是直接执行for 循环。在if 语句中将列表名用在条件表达式中时,Python将在列表至少包含一个元素时返回True ,并在列表为空时返回False

5.4.3 使用多个列表

image.png