5.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

你还可以检查两个数字是否不等,例如,下面的代码在提供的答案不正确时打印一条消息:

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语句中可使用各种数学比较,这让你能够直接检查关心的条件。

扫描二维码关注公众号,回复: 15426113 查看本文章

5.2.5 检查多个条件

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

1.使用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_o和age_1。在第三行,我们检查这两个变量是否都大于或等于21; 左边的测试通过了,但右边的测试没有通过,因此整个条件表达式的结果为False。在第五行,我们将age_1改为22,这样age_1的值大于21,因此两个测试都通过了,导致整个条件表达式的结果为True。 为改善可读性,可将每个测试都分别放在一对括号内,但并非必须这样做。如果你使用括号测试将类似于下面这样:

(age_0 >= 21) and (age_1 >= 21)
  1. 使用or检查多个条件

关键字or也能让你检查多个条件,但至少有一个条件满足,就能通过整个测试。仅当两个测试都没有通过时,使用or的表达式才为False。

下面再次检查两个人的年龄,但检查的条件是至少有一个人的年龄不小于21岁:

>>>age_0 = 22
>>>age_1 = 18
>>>age_0 >= 21 or age_1 >= 21
True
>>>age_0 = 18
>>>age_0 >= 21 or age_1 >= 21
False

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

有时候,执行操作前必须检查列表是否包含特定的值。例如,结束用户的注册过程前,可能需要检查他提供的用户名是否已包含在用户名列表中。在地图程序中,可能需要检查用户提交的位置是否包含在已知位置列表中。**要判断特定的值是否已包含在列表中,可使用关键字in。**来看你可能为比萨店编写的一些代码:这些代码首先创建一个列表,其中包含用户点的比萨配料,然后检查特定的配料是否包含在该列表中。

>>>requested_toppings = ['mushrooms','onions','pineapple']
>>>'mushrooms' in requested_toppings
True
>>>'pepperoni' in requested_toppings
False

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

还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in。例如,如果有一个列表,其中包含被禁止在论坛上发表评论的用户,就可在允许用户提交评论前检查他是否被禁言:

banned_users = ['andrew','carolina','david']
user = 'marie'

if user not in banned_users:
    print(user.title()+",you can post a response if you wish.")

第三行的代码行明白易懂:如果users的值未包含在列表banned_users中,Python将返回True,进而执行缩进的代码行。

用户’marie’未包含在列表banned_users中,因此她将看到一条邀请她发表评论的消息:

Marie,you can post a response if you wish.

猜你喜欢

转载自blog.csdn.net/Allen1862105/article/details/129202003
5.2