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