程序并非是一成不变的向下执行,有的时候也要根据条件的不同选择不一样的代码,这个时候便用到了分支结构。那么到底如何让程序根据条件的不同选择不一样的代码呢?我们一起来看下:
程序可以根据条件执行不同的分支,程序结构如下图所示:
在图中,对条件进行判断:
- 如果条件为真,执行“条件为真的分支”
- 如果条件为假,执行“条件为假的分支”
Python 提供了 if 条件控制语句用于选择执行流程,Python 的 if 语句的语法如下:
if 条件: 条件为真的分支 else: 条件为假的分支
代码块预览 复制
- 1
- 2
- 3
- 4
if 语句中可以省略 else 分支,语法如下;
if 条件: 条件为真的分支
代码块预览 复制
- 1
- 2
例子 1,编写程序 if-else.py 如下:
if 2 > 1:
print('2 > 1 is true')
else:
print('2 > 1 is false')
- 1
- 2
- 3
- 4
- 在第 1 行,判断条件 2 > 1 是否成立
- 在第 2 行,因为条件成立,执行 print(‘2 > 1 is True’)
- 在第 3 行,因为条件不成立,不执行 print(‘2 > 1 is False’)
程序 if-else.py 的输出结果为:
2 > 1 is true
代码块预览 复制
- 1
例子 2,编写程序 if.py 如下:
- 在第 1 行,判断条件 1 == 1 是否成立
- 在第 2 行,因为条件成立,执行 print(‘1 == 1 is True’)
程序 if.py 的输出结果为:
1 == 1 is true
代码块预览 复制
- 1
程序可以根据多个条件的筛选执行不同的分支,程序结构如下图所示:
在图中,对多个条件进行判断:
- 如果条件 1 为真,则执行代码块 1
- 如果条件 2 为真,则执行代码块 2
- 如果条件 3 为真,则执行代码块 3
- 如果以上条件都不满足,则执行代码块 4
Python 提供了 elif 语句用于选择多个条件,Python 的 elif 语句的语法如下:
if 条件 1: 代码块 1 elif 条件 2: 代码块 2 elif 条件 3: 代码块 3 else: 代码块 4
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
if 语句中可以省略 else 分支,语法如下;
if 条件 1: 代码块 1 elif 条件 2: 代码块 2 elif 条件 3: 代码块 3
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
- 6
编写程序 select.py 如下:
color = input()
if color == 'red':
print('color is red')
elif color == 'green':
print('color is green')
elif color == 'blue':
print('color is ')
else:
print('color is other')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 在第 1 行,将用户输入的字符串保存在变量 color 中
- 在第 2 行,执行条件判断:color 是否等于 ‘red’,如果成立则执行第 3 行对应的分支
- 在第 4 行,执行条件判断:color 是否等于 ‘green’,如果成立则执行第 5 行对应的分支
- 在第 6 行,执行条件判断:color 是否等于 ‘blue’,如果成立则执行第 7 行对应的分支
- 在第 8 行,如果以上条件判断都不成立,则执行第 9 行对应的分支
运行程序 select.py,结果如下:
C:\> python select.py green color is green
代码块预览 复制
- 1
- 2
- 3
- 程序运行时,输入字符串 green
- 满足程序第 4 行的条件判断,输出结果为 color is green
再次运行程序 select.py,结果如下:
C:\> python select.py yellow yellow is other
代码块预览 复制
- 1
- 2
- 3
- 程序运行时,输入字符串 yellow
- 第 2 行、第 4 行、第 6 行的条件判断均不成功,执行第 9 行,输出结果为 yellow is other
在分支选择程序中,分支也可以是分支选择语句,形成分支嵌套结构,如下所示:
- 程序首先判断条件 1 是否为真
- 如果条件 1 为真,则判断条件 2 是否为真
- 条件 1 为真并且条件 2 为真,执行代码块 1
- 条件 1 为真并且条件 2 为假,执行代码块 2
- 如果条件 1 为假,则判断条件 3 是否为真
- 条件 1 为假并且条件 3 为真,执行代码块 3
- 条件 1 为假并且条件 3 为假,执行代码块 4
编写程序 nest.py 如下:
sex = input()
age = int(input())
if sex == 'male':
if age > 50:
print('old male')
else:
print('young male')
else:
if age > 50:
print('old female')
else:
print('young female')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 在第 1 行,用户输入性别 sex
- 在第 2 行,用户输入年龄 age,注意:使用函数 int() 将用户输入的字符串转换为整数
- 在第 3 行,判断用户性别
- 如果为真则执行第 4 行的 if 语句
- 如果为假则执行第 9 行的 if 语句
运行程序 nest.py,结果如下:
C:\> python nest.py female 20 young female
代码块预览 复制
- 1
- 2
- 3
- 4
- 首先,用户输入性别为 female
- 然后,用户输入年龄 20
- 经过第 3 行的条件判断 sex == male 和 第 9 行的条件判断 age > 50
- 执行第 12 行的语句
- 输出 young female
分支结构在工作中可谓是基本每天都会写,所以掌握分支结构也就显得非常重要。记得把课程中的代码多敲几遍,熟能生巧。