5.2.4 数值比较
检查数值非常简单。例如,下面的代码检查一个人是否是18岁:
>>> age = 18
>>> age == 18
True
还可检查两个数是否不等。例如,下面的代码在提供的答案不正确时打印一条消
息:
magic_number.py
answer = 17
❶ if answer != 42:
print("That is not the correct answer. Please try again!")
answer 的值(17 )不是42 ,❶处的条件得到满足,因此缩进的代码块得以执
行:
That is not the correct answer. Please try again!
条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于:
>>> age = 19
>>> age < 21
True
>>> age <= 21
True
>>> age > 21
False
>>> age >= 21
False
在if 语句中可使用各种数学比较,这让你能够直接检查关心的条件。
5.2.5 检查多个条件
你可能想同时检查多个条件。例如,有时候需要在两个条件都为True 时才执行相
应的操作,而有时候只要求一个条件为True 。在这些情况下,关键字and 和or
可助你一臂之力。
a. 使用and 检查多个条件
要检查是否两个条件都为True ,可使用关键字and 将两个条件测试合而为
一。如果每个测试都通过了,整个表达式就为True ;如果至少一个测试没有
通过,整个表达式就为False 。
例如,要检查是否两个人都不小于21岁,可使用下面的测试:
❸ >>> age_0 = 22
>>> age_1 = 18
❷ >>> age_0 >= 21 and age_1 >= 21
False
❸ >>> age_1 = 22
>>> age_0 >= 21 and age_1 >= 21
True
在❶处,定义两个用于存储年龄的变量:age_0 和age_1 。在❷处,检查这两
个变量是否都大于或等于21。左边的测试通过了,但右边的测试没有通过,因
此整个条件表达式的结果为False 。在❸处,将age_1 改为22,这样age_1
的值大于21,因此两个测试都通过了,导致整个条件表达式的结果为True 。
为改善可读性,可将每个测试分别放在一对圆括号内,但并非必须这样做。如
果你使用圆括号,测试将类似于下面这样:
(age_0 >= 21) and (age_1 >= 21)
b. 使用or检查多个条件
关键字or 也能够让你检查多个条件,但只要至少一个条件满足,就能通过整个
测试。仅当两个测试都没有通过时,使用or 的表达式才为False 。
下面再次检查两个人的年龄,但检查的条件是至少一个人的年龄不小于21岁:
❶ >>> age_0 = 22
>>> age_1 = 18
❷ >>> age_0 >= 21 or ag