0%

第五章 if语句

5.1 一个简单示例

1
2
3
4
5
6
names = ["zhang", "wang", "li", "chen"]
for name in names:
if name == "chen":
print(name.upper())
else:
print(name)

输出结果为:

1
2
3
4
zhang
wang
li
CHEN

5.2 条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试

5.2.1 检查是否相等

1
2
3
name = "chen"
print(name == "chen")
print(name == "wang")

输出结果为:

1
2
True
False

这个相等运算符在两边的值相等时返回True,否则返回False。

5.2.2 检查是否相等时忽略大小写

在Python中检查是否相等时区分大小写。

1
2
name = "chen"
print(name == "Chen")

输出结果为:

1
False

如果想忽略大小写,可以使用upper()与lower()函数将变量转换后的副本比较,且不会影响原变量。

5.2.3 检查是否不等

要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示

1
2
3
name = "chen"
if name != "li":
print("the name is wrong!")

输出结果为:

1
the name is wrong!

5.2.4 数值比较

条件语句中可包含各种数学比较,如等于、不等于、小于、小于等于、大于、大于等于:

1
2
3
4
5
6
7
age = 24
print(age == 24)
print(age != 30)
print(age < 18)
print(age <= 42)
print(age > 30)
print(age >= 17)

输出结果为:

1
2
3
4
5
6
True
True
False
True
False
True

5.2.5 检查多个条件

  1. 使用and检查多个条件

如果每个测试都通过了,整个表达式就为True;如果至少一个测试没有通过,整个表达式就为False。

1
2
3
4
5
age1 = 24
if(age < 30) and (age > 18):
print("you are young!")
if(age >= 30) and (age <= 100):
print("you are so old!")

输出结果为:

1
you are young!
  1. 使用or检查多个条件

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

1
2
3
4
5
6
numbers = [24, 34]
for number in numbers:
if(number < 30) or (number > 50):
print("you are right!")
else:
print("wrong!!!!")

输出结果为:

1
2
you are right!
wrong!!!!

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

要判断特定的值是否已包含在列表中,可使用关键字in

1
2
3
4
5
names = ["zhang", "wang", "li"]
if "chen" in names:
print("chen in list!")
else:
print("chen not in list!")

输出结果为:

1
chen not in list!

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

还有些时候,确定特定的值未包含在列表中很重要。在这种情况下,可使用关键字not in

1
2
3
4
5
names = ["zhang", "wang", "li"]
if "chen" not in names:
print("chen not in list!")
else:
print("chen in list!")

输出结果为:

1
chen not in list!

5.2.8 布尔表达式

布尔表达式是条件测试的别名。与条件表达式一样,布尔表达式的结果要么为True,要么为False。

1
2
bool_value1 = True
bool_value2 = False

5.3 if语句

if语句有很多种,选择使用哪种取决于要测试的条件数。

5.3.1 简单的if语句

最简单的if语句只有一个测试和一个操作:

1
2
if conditional_test:
do something
1
2
3
age = 19
if age >= 18:
print("you are a men!")

输出结果为:

1
you are a men!

5.3.2 if-else语句

1
2
3
4
5
age = 17
if age >= 18:
print("you are a men!")
else:
print("you are so young!")

输出结果为:

1
you are so young!

5.3.3 if-elif-else结构

1
2
3
4
5
6
7
age = 12
if age < 4:
print("your cost is ¥0!")
elif age < 18:
print("your cost is ¥25!")
else:
print("your cost is ¥40!")

输出结果为:

1
your cost is ¥25!

5.3.4 使用多个elif代码块

1
2
3
4
5
6
7
8
9
10
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65
price = 40
else:
price = 20
print(f"your cost is ¥{price}!")

输出结果为:

1
your cost is ¥25!

5.3.5 省略else代码块

1
2
3
4
5
6
7
8
9
10
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65
price = 40
elif age >= 65:
price = 20
print(f"your cost is ¥{price}!")

输出结果为:

1
your cost is ¥25!

5.3.6测试多个条件

1
2
3
4
5
names = ["zhang", "wang", "li", "chen"]
if "chen" in names:
print("chen in the list!")
if "zhao" in names:
print("zhao in the list!")

输出结果为:

1
chen in the list!

总之,如果只想执行一个代码块,就是用if-elif-else结构;如果要执行多个代码块,就使用一系列独立的if语句。

5.4 使用if语句处理列表

通过结合使用if语句和列表,对列表中特定的值做特殊处理,可高效地管理不断变化的情形。

5.4.1 检查特殊元素

1
2
3
4
5
6
names = ["zhang", "wang", "li", "chen"]
my_name = "chen"
if my_name in names:
print(f"mr.{my_name},you are in the list!")
else:
print(f"mr.{my_name},you are not in the list!")

输出结果为:

1
mr.chen,you are in the list!

5.4.2 确定列表不是空的

1
2
3
4
5
names = []
if names:
print("list is not empty!")
else:
print("list is empty!")

输出结果为:

1
list is empty!

在if语句中将列表名用作条件表达式时,Python将在列表至少包含一个元素时返回True,并在列表为空时返回False。