Python 条件控制
Python条件控制是通过条件语句的执行结果(True or False)来决定条件语句后的代码块是否执行
以最简单的if语句为例,代码执行流程如下:
以下是一个简单的if实例:
boy_age = 16
if boy_age == 18:
print('He is %d years old' % boy_age)
if boy_age == 16:
print('He is %d' % boy_age)
结果如下:
第一个if条件判断为False,所以第一个if判断后的print语句没有执行;第二个if条件判断为True,所以执行了之后的print语句
像上面这种写多个if语句的代码不清晰也不简洁,可以使用if-else、if-elif、if-elif-else等语句来执行多次条件判断
if-else条件判断
if-else条件判断适用于分类明确,且只有两种情况的条件判断,如性别判断等,
如果if条件为True,则执行if条件后的代码块,不执行else后的代码块;反之则只执行else后的代码块,示例如下:
gender = 'boy'
if gender == 'boy':
print('张无忌 is a handsome %s' % gender)
else:
print('张无忌 is a beautiful %s' % gender)
结果如下:
if-elif-else条件判断
if-elif-else条件判断适用于分类明确,有三种及以上情况的条件判断,如大小关系等,执行情况如下:
-
如果if条件为True,则执行if条件后的代码块,不执行之后的elif/else判断及其代码块
-
如果if条件为False,则不执行if条件后的代码块,继续执行之后的elif判断
-
如果elif条件为True,则执行elif条件后的代码块,不执行之后的elif/else判断及其代码块
-
最后如果所有的if/elif条件都为False,则执行else之后的代码块
示例如下:
x = 5
y = 10
if x > y:
print('x > y') # 判断条件为False,不执行对应的代码块
elif x < y:
print('x < y') # 判断条件为True,执行对应的代码块
else:
print('x = y') # 前面有if/elif条件为True,所以不执行else之后的代码块
结果如下:
多个条件判断时,将出现概率高的条件写在前面可以减少判断次数,提高程序运行速度
if-elif条件判断
if-elif条件判断与if-elif-else执行流程基本一样,只是省略了最后的else语句
适用于多种情况,只想判断其中部分情况的需求,示例如下:
age = 28
if 0 < age <= 20:
print('age is between 0-20')
elif 20 < age <= 40:
print('age is between 20-40')
elif 40 < age <= 60:
print('age is between 40-60')
结果如下:
如果将age = 28 改为age = 70,则不会执行任何打印语句,因为if/elif的条件判断都为False
最后:if-else、if-elif-else中的else是一条兜底语句,所有不符合条件的测试都会执行else之后的代码块,这可能会引入无效的甚至恶意的数据。如果明确最后的判断条件,应该将所有的else语句都改写为elif语句,以此来提高代码的可读性和安全性