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