目录
- 一、条件测试
- 1.检查是否相等
- 2.检查是否不等
- 3.比较数字
- 4.检查多个条件
- (1)使用and检查多个条件
- (2)使用or检查多个条件
- 5.检查特定值是否包含在列表中
- 6.检查特定值是否不包含在列表中
- 二、if语句
- 1.简单的if语句
- 2.if-else语句
- 3.if-elif-else结构
- 4.使用多个elif代码块
- 5.省略else代码块
- 6.测试多个条件
- 三、使用if语句处理列表
- 1.使用for循环检查特殊元素
- 2.确定列表不是空的
- 3.使用多个列表
一、条件测试
每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。
1.检查是否相等
使用两个等号(==),叫做相等运算符。这个相等运算符在它两边的值相等时返回True,否则返回False。一个等号是陈述,两个等号是发问。
2.检查是否不等
在Python中检查是否相等时区分大小写,两个大小写不同的值会被视为不相等。要判断两个值是否不等,可使用(!=)。惊叹号表示“不”。如果不相等,Python将返回True,如果两个值相等,Python将返回False。
3.比较数字
各种数字比较:小于(<),大于(>),小于等于(<=),大于等于(>=),等于(==),不等于(!=)。
4.检查多个条件
(1)使用and检查多个条件
要检查是否两个条件都为True,可使用关键字and将两个条件测试合而为一。如果每个测试都通过了,整个表达式就为True,如果至少有一个测试没有通过,整个表达式就为False。为改善可读性,可将每个测试分别放在一对括号内,但并非必须这样做。比如:
(age_0 >= 21) and (age_1 >= 21)
(2)使用or检查多个条件
只要至少有一个条件满足,就能通过整个测试(True),仅当两个测试都没有通过时,使用or的表达式才为False。
5.检查特定值是否包含在列表中
使用关键字in,返回值是True或者False。
6.检查特定值是否不包含在列表中
使用关键字not in,返回值是True或者False。
注:布尔表达式是条件测试的别名,结果要么是True,要么是False。
二、if语句
1.简单的if语句
最简单的if语句只有一个测试和一个操作:
if conditional_test:
do something
第一行中可包含任何条件测试。
2.if-else语句
else语句可以指定条件测试未通过时要执行的操作。比如:
age = 17
if age >= 18:
print("You are old enough to vote!")
print("Have you registered to vote yet?")
else:
print("Sorry, you are too young to vote.")
print("Please register to vote as soon as you turn 18!")
if-else结构非常适合用于Python执行两种操作之一的情形。在此结构中,总是会执行两个操作中的一个。
3.if-elif-else结构
Python只执行if-elif-else结构中的一个代码块,它依次检查条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。比如:
age = 12
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.")
结果如下:
Your admission cost is $5.
4.使用多个elif代码块
可根据需要使用任意数量的elif代码块。比如:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
else:
price = 5
print("Your admission cost is $" + str(price) + ".")
5.省略else代码块
Python并不要求if-elif结构后面必须有else代码块。有时候使用elif语句来处理特定的情形更清晰。比如:
age = 12
if age < 4:
price = 0
elif age < 18:
price = 5
elif age < 65:
price = 10
elif age >= 65:
price = 5
print("Your admission cost is $" + str(price) + ".")
每个代码块都仅在通过了相应的测试时才会执行。在使用else语句时,只要不满足任何if或elif中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据,如果知道最终要测试的条件,应考虑使用elif代码块代替else代码块。仅当满足相应的条件时,代码才会执行。
6.测试多个条件
有时候必须检查我们所关心的所有条件,此时应使用一系列不包含elif和else代码块的简单if语句。在可能有多个条件为True,且需要在每个条件为True时都采取相应的措施时,适合使用此方法。比如:
requested_toppings = ['mushrooms','extra cheese']
if 'mushrooms' in requested_toppings:
print("Adding mushrooms.")
if 'pepperoni' in requested_toppings:
print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
print("Adding extra cheese.")
print("\nFinished making your pizza!")
结果如下:
Adding mushrooms.
Adding extra cheese.
Finished making your pizza!
总之,如果只想执行一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。
三、使用if语句处理列表
1.使用for循环检查特殊元素
2.确定列表不是空的
在if语句中,将列表名用在条件表达式中时,Python将在列表至少包含一个元素时返回True,在列表为空时返回False。比如:
requested_toppings = []
if requested_toppings:
for requested_topping in requested_toppings:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
else:
print("Are you sure you want a plain pizza?")
结果如下:
Are you sure you want a plain pizza?
3.使用多个列表
应用举例:
available_toppings = ['mushrooms','olives','green peppers','pepperoni','pineapple','extra cheese']
requested_toppings = ['mushrooms','french fries','extra cheese']
for requested_topping in requested_toppings:
if requested_topping in available_toppings:
print("Adding " + requested_topping + ".")
else:
print("Sorry, we don't have " + requested_topping + ".")
print("\nFinished making your pizza!")
结果如下:
Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.
Finished making your pizza!