每条if语句的核心都是一个值为True或者False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,执行紧跟在if语句后面的代码,如果是False,就忽略掉这些代码。
1.检查是否相等
最简单的条件测试检查变量的值是否与特定值相等:
>>> a='zjb'
>>> a='zjb'
在这个示例中,两边的值相等,因此python返回True。
如果变量a的值不是 'zjb',上述的结果将返回False:
>>> a='abcd'
>>> a='zjb'
False
2.检查是否相等时不考虑大小写
在python中检查是否相等时区分大小写。例如,两个大小写不同的值会被视为不相等。
>>> a='Azjb'
>>> a='azjb'
False
如果大小写无关紧要,只想检查变量的值,可将变量的值转化为小写,然后进行比较:
>>> a='Azjb'
>>> a.lower() == 'azjb'
3.检查是否不相等
要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示不,在很多编程语言中都是如此。
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
print("Hold the anchovies!")
打印结果如下:
Hold the anchovies!
4.比较数字
检查数值非常简单,例如、下面的代码检查一个人是否是18岁:
>>>age = 18
>>>age == 18
你还可以检查两个数字是否不等,例如,下面的代码在提供的答案不正确时打印一条消息:
answer = 17
if answer != 42:
print("That is not the correct answer. Please try again!")
执行结果:
That is not the correct answer. Please try again!
条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于:
>>> age = 19
>>> age < 21
>>>age <= 21
>>>age > 21
False
>>age >= 21
False
5.检查多个条件
5.1使用and检查多个条件
要检查是否两个条件都为True,可使用关键字and将两个条件测试合面为一;
如果每个测试都通过了,整个表达式就为True;
如果至少有一个测试没有通过,整个表达式就为False。
例如,要检查是否两个人都不小于21岁,可使用下面的测试:
>>>age_0 = 22
>>>age_1 = 18
>>>age_0 >= 21 and age_1 >= 21
Falce
>>>age_1 = 22
>>>age_0 >= 21 and age_1 >= 21
为改善可读性,可将每个测试都分别放在一对括号内,但并非必须这样做。如果你使用括号, 测试将类似于下面这样:
(age_0 >= 21) and (age_1 >= 21)
5.2使用or检查多个条件
关键字or也能检查多个条件,但只要至少有一个条件满足,就能通过整个测试。
仅当两个测试都没有通过时,使用or的表达式才为False.
>>>age_0 = 22
>>>age_1 = 18
>>>age_0 >= 21 or age_1 >= 21
>>>age_0 = 18
>>>age_0 >= 21 or age_1 >= 21
False
6.检查特定值是否包含在列表中
要判断特定的值是否已包含在列表中,可使用关键字in。
>> abc = ['mushrooms', 'onions', 'pineapple'l
>>>'mushrooms' in abc
>>>'pepperoni' in abc
False
这种方法在创建一个列表后,能够轻松地检查其中是否包含特定的值。
7.检查特定值是否不包含在列表中
还有些时候,确定特定的值未包含在列表中很重要;在这种情况下,可使用关键字not in.。
例如,如果有一个列表,其中包含被禁止在论坛上发表评论的用户,就可在允许用户提交评论前检查他是否被禁言:
zh = ['andrew', 'carolina', 'david']
user = 'marie'
if user not in zh
print(user.title() + ", you can post a response if you wish.")
打印结果:
Marie, you can post a response if you wish.
8.布尔表达式
布尔表达式,是条件测试的别名。
与条件表达式一样,布尔表达式的结果要么为True,要么为False.
game_active = True
can_edit = False
在跟踪程序状态或程序中重要的条件方面,布尔值提供了一种高效的方式。