目录
5.1 一个简单示例
下面是一个简短的示例,演示了如何使用if 语句来正确地处理特殊情形。假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,应以首字母大写的方式打印其名称,但对于汽车名
'bmw' ,应以全大写的方式打印。下面的代码遍历这个列表,并以首字母大写的方式打印其中的汽车名,不过对于
'bmw' ,则以全大写的方式打印:
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
这个示例中的循环首先检查当前的汽车名是否是
'bmw' 。如果是,就以全大写方式打印,否则以首字母大写的方式打印:
Audi
BMW
Subaru
Toyota
5.2 条件测试
每条
if
语句的核心都是一个值为
True
或
False
的表达式,这种表达式称为条件测试
。Python根据条件测试的值为
True
还是
False
来决定是否执行
if 语句中的代码。如果条件测试的值为
True
,Python就执行紧跟在
if 语句后面的代码;如果为
False
,Python就忽略这些代码。
5.2.1 检查是否相等
>>> car = 'bmw'
>>> car == 'bmw'
True
用一个等号将
car
的值设置为
'bmw'
两个等号(==
)检查
car
的值是否为
'bmw'
这个相等运算符
在两边的值相等时返回
True
,否则返回
False
5.2.2 检查是否相等时忽略大小写
在Python中检查是否相等时区分大小写。例如,两个大小写不同的值被视为不相等
如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,只想检查变量的值,可将变量的值转换为小写,再进行比较
5.2.3 检查是否不相等
要判断两个值是否不等,可结合使用惊叹号和等号(
!=
),其中的惊叹号表示不,其他很多编程语言中也是如此。
下面再使用一条if 语句来演示如何使用不等运算符。我们将把要求的比萨配料赋给一个变量,再打印一条消息,指出顾客要求的配料是否是意式小银鱼(anchovies)
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
代码行将
requested_topping
的值与
'anchovies' 进行比较。如果这两个值不相等,Python将返回
True
,进而执行紧跟在
if 语句后面的代码;如果相等,Python将返回
False
,因此不执行紧跟在
if
语句后面的代码。
因为
requested_topping
的值不是
'anchovies' ,所以执行函数调用print()
:
Hold the anchovies!
5.2.4 数值比较
检查数值非常简单。例如,下面的代码检查一个人是否是18岁:
>>> age = 18
>>> age == 18
True
条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于
5.2.5 检查多个条件
你可能想同时检查多个条件。例如,有时候需要在两个条件都为
True 时才执行相应的操作,而有时候只要求一个条件为
True
。在这些情况下,关键字
and
和or可助你一臂之力。
a. 使用and 检查多个条件
要检查是否两个条件都为
True
,可使用关键字
and 将两个条件测试合二为一。如果每个测试都通过了,整个表达式就为
True ;如果至少一个测试没有通过,整个表达式就为
False
。
为改善可读性,可将每个测试分别放在一对圆括号内,但并非必须这样做。
b. 使用or检查多个条件
关键字
or 也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用
or
的表达式才为
False
。
注意 python也存在短路求值
>>> age_0 = 22
>>> age_1 = 30
>>> age_0 < 25 or age_1 < 25
True
5.2.6 检查特定值是否包含在列表中
要判断特定的值是否已包含在列表中,可使用关键字in 。下面来看看你可能为比萨店编写的一些代码。这些代码首先创建一个列表,其中包含用户点的比萨配料,然后检查特定的配料是否包含在该列表中。
>>> requested_toppings = ['mushrooms', 'onions', 'pineapple']
>>> 'mushrooms' in requested_toppings
True
>>> 'pepperoni' in requested_toppings
False
关键字
in
让
Python
检查列表
requested_toppings 是否包含
'mushrooms'
和
'pepperoni' 。这种技术很有用,让你能够在创建一个列表后,轻松地检查其中是否包含特定的值。
5.2.7 检查特定值是否不包含在列表中
还有些时候,确定特定的值未包含在列表中很重要。在这种情况下,可使用关键字not in 。例如,有一个列表,其中包含被禁止在论坛上发表评论的用户,可以在允许用户提交评论前检查他是否被禁言:
banned_users = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in banned_users:
print(f"{user.title()}, you can post a response if you wish.")
的代码行明白易懂:如果
user
的值未包含在列表
banned_users 中,Python将返回
True
,进而执行缩进的代码行。
用户
'marie'
未包含在列表
banned_users 中,因此她将看到一条邀请她发表评论的消息:
Marie, you can post a response if you wish.
5.2.8 布尔表达式
随着你对编程的了解越来越深入,将遇到术语