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语句,以此来提高代码的可读性和安全性

posted @ 2021-04-30 14:33  弓长无忌  阅读(191)  评论(0编辑  收藏  举报