目录

  • 一、条件测试
  • 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!