第五章:if 语句
1.一个简单示例
假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来,但对于汽车名 ’bwm‘ ,你想要以全大写的方式打印,我们可以使用 if 语句来实现:

输出为:

在这个示例中,循环首先检查当前的汽车名是否为 ‘bwm' ,如果是,就以全大写的方式打印它;否则就以首字母大写的方式打印。
2.条件测试
每条 if 语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Pyhton根据条件测试的值来决定是否执行 if 语句中的代码。
2.1检查是否相等

返回值为:True

返回值为:False
我们首先使用一个等号对变量car进行赋值,然后使用二个等号来判断变量car的值是否为 ’bwm' ,大多数编程语言使用等号的方式都与这里演示的相同。
注意,Python严格区分大小写,这意味着 'Audi' 和 'audi' 是两个不同的值,如果你对它们进行比较,会返回False。如果你只想检查变量的值,可以使用 lower()函数 将变量的值转换为小写,再进行比较。
2.2检查是否不相等

要判断两个值是否不等,可以使用 ( != ) ,在很多编程语言中都是如此。
2.3检查多个条件
使用and检查多个条件:
要检查是否两个条件都为True,可使用关键字and将两个条件测试合并:

我们定义了两个存储年龄的变量age0和age1,并检查这两个变量是否都大于21,这两个条件中只有一个成立,因此返回值为False。
使用or检查多个条件:
要检查两个条件中是否至少有一个条件为True,可使用关键字or:

再次检查两个人的年龄,这两个条件中有一个已经满足,因此返回值为True。
2.4检查特定值是否包含或不包含在列表中
我们可以使用关键字 in 和 not in 来检查列表是否包含或不包含特定的值:

其返回值均为True。
这种方法很有用,例如在用户注册时可以检查用户名是否已经存在,如果已经存在,则需要重新填写。
2.5布尔表达式
你也可以直接将布尔值赋给变量,这通常用于记录条件,例如你可以判断游戏是否正在运行,或者用户是否可以编辑:

3.if 语句
if 语句有很多种,使用哪种主要取决于要测试的条件数。
3.1简单的 if 语句
最简单的 if 语句只有一个测试和一个操作:
if conditional_test:
do something
如果条件测试为True,Python就会执行紧跟在 if 语句后面的代码;否则Python将忽略这些代码。紧跟在 If 语句后面的代码块中,可根据需要包含任意数量的代码行,但别忘了缩进。
3.2 if-else 语句
if-else 语句类似于简单的 if 语句,但其中的 else 语句让你能够指定条件测试未通过时要执行的操作:

由于age小于18,因此执行else代码块中的代码。if-else 结构非常适合用于要让Python执行两种操作其中之一的情形。
3.3 if-elif-else 结构
要检查超过两个的情形,可使用 if-elif-else 结构,Python只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试:

第一个测试结果为False,因此不执行其代码块,第二个测试结果为True,因此将执行其代码块,并跳过余下部分。
输出为:
![]()
注意,你可以根据需要使用任意数量的 elif 代码块来添加多个条件测试,你还可以使用一个 elif 代码块来代替 else 代码块,这样,仅当满足相应的条件时,你的代码才会执行。
4.使用 if 语句处理列表
4.1检查特殊元素
通过结合使用 if 语句和列表,我们可以对列表中的特定的值做特殊处理,如以下代码:

在比萨中添加每种配料前都进行检查,如果用户点了青椒,就显示一条信息:我们目前没有可用的青椒。else代码块确保其他配料都将添加到比萨中。输出结果如下:

4.2确定列表是否为空
下面在制作比萨前检查顾客点的配料列表是否为空,如果为空,就向顾客确认他是否要点普通比萨,如果不为空,就像前面那样制作比萨:

我们首先创建了一个空列表,然后使用 if 语句进行简单检查,因为此时列表为空,所以Python会返回False,因而直接执行else代码块中的语句。
4.3使用多个列表
下面的示例定义了两个列表,其中一个包含比萨店供应的配料,另一个包含顾客点的配料。对于requested_toppings中的每个元素,都检查它是否在比萨店供应的配料中,再决定是否在比萨中添加它:

输出为:


浙公网安备 33010602011771号