从零开始学Python系列课程第12课:Python中的分支结构

流程图.jpg

一、分支结构的应用场景

迄今为止,我们写的Python代码都是一条条语句自上而下顺序执行,这种代码结构被称为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本关卡游戏后,我们要根据得分来判断玩家能否进入下一关,这里就会产生通关和不通关两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。

二、if语句的使用

在Python中,要构造分支结构可以使用if、elif、else关键字,使用这三个关键字可以构造单分支结构、多分支结构和三目运算结构,下面我们借助案例帮助大家更好的理解分支结构。

单分支结构

我们使用一个生活中常见的问题来举例:判断一个年份是否是闰年。

year = int(input('请输入一个年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print('闰年')
else:
    print('平年')

根据上述代码,我们带入单分支结构的语法及解释:

if 条件语句:
    代码块 1
else:
    代码块 2

解释:if 后面的条件语句便是判断程序如何执行的关键,如果条件语句结果为真,那么执行代码块 1,反之执行代码块 2。
总之记住一句话:分支结构最多只有一条分支会被执行。

多分支结构

上面的单分支结构是二选一问题,这里的多分支结构是多选一的问题,判断一个年份是否是闰年,其实还可以使用多分支结构来解决,请看代码:

year = int(input('请输入一个年份:'))
if year % 4 == 0 and year % 100 != 0:
    print('闰年')
elif year % 400 == 0:
    print('闰年')
else:
    print('平年')

如果涉及到多个条件,那么就需要用到 elif 这个关键字了,我们一起来看一下多分支结构的语法及解释:

if 条件语句 1:
    代码块 1
elif 条件语句 2:
    代码块 2
elif 条件语句 3:
    代码块 3
......
else:
    代码块 N+1

解释:多选一问题呢意味着有多个相互独立的条件需要分别判断,那么除了第一个条件要写在 if 关键字后面以外,其余的都要写在 elif 关键字后面,
最后一个条件可以不写,使用 else 替代,每一条分支会按照先后顺序进行判断,哪个条件成立,就执行哪条分支下面的代码块,发现成立的条件
以后,未执行到的分支不再执行。

三目运算结构

我们再次使用三目运算结构来实现判断一个年份是否是闰年问题:

year = int(input('请输入一个年份:'))
result = "闰年" if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) else "平年"
print(result)

三目运算结构只是单分支结构的变形,程序的性能没有任何变化,只是在某种程度上变得更加美观,但是并不是所有的单分支结构都可以转化为三目运算结构的形式,请看三目运算结构的语法和解释

结果 1 if 表达式 else 结果 2

解释:判断表达式的结果是否为真,如果是真,整个运算的结果是结果 1;否则,整个运算的结果是结果 2

三、分支结构的练习案例

  1. 英制单位英寸与公制单位厘米互换。

    注:厘米 = 英寸 * 2.54

    length = float(input('请输入长度: '))
    unit = input('请输入单位(英寸或厘米): ')
    if unit == '英寸':
        print(f'{length}英寸 = {length * 2.54}厘米')
    else:
        print(f'{length}厘米 = {length / 2.54}英寸')
    
  2. 百分制成绩转换为等级制成绩。

    注:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。

    score = float(input('请输入成绩: '))
    if score >= 90:
        grade = 'A'
    elif score >= 80:
        grade = 'B'
    elif score >= 70:
        grade = 'C'
    elif score >= 60:
        grade = 'D'
    else:
        grade = 'E'
    print(f'对应的等级是:{grade}')
    
  3. 输入三条边长,如果能构成三角形就计算周长和面积。

    注:上面通过边长计算三角形面积的公式叫做海伦公式

    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    if a + b > c and a + c > b and b + c > a:
        peri = a + b + c
        print(f'周长: {peri}')
        half = peri / 2
        area = (half * (half - a) * (half - b) * (half - c)) ** 0.5
        print(f'面积: {area}')
    else:
        print('不能构成三角形')
    
  4. 根据年龄打印成年或者未成年(用三目运算结果完成)

    age = int(input('请输入一个年龄'))
    result = '成年' if age >= 18 else '未成年'
    print(result)
    
  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerrFu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值