if分支语句

if单分支

if单分支的语法结构如下:

if <条件>:
    语句块
  • 注意条件语句结束后要紧跟冒号
  • 语句块是if条件满足条件后执行的一条或多条语句组
  • 语句块中的语句通过缩进与if语句所在的行形成包含关系
  • 缩进按照规范为4个空格

if单分支的执行流程图如下:

1659684155400

if语句首先会计算<条件>表达式,如果结果为Ture则会执行所包含的语句块,结果为False则会跳过所包含的语句块。if结构中的语句块的执行是否依赖条件判读,但无论什么情况,控制都会转到if结构的下一条语句。

案例:成绩是否及格

1659685057927

  • input函数

input函数用来接收用户输入,然后以字符串的形式返回,它接收字符串参数作为提示信息输出。

>>> score = input('请输入你的成绩>>>:')
请输入你的成绩>>>:100
>>> print(score, type(score))
100 <class 'str'>

案例代码:

>>> score = input('请输入你的成绩>>>:')
请输入你的成绩>>>:90
>>> score = float(score)     # 转换类型

>>> if score < 60:# 判断
...     print('没及格,赏一巴掌')
    
>>> if score >= 60:
...     print('有进步,么么哒,亲一下')
'有进步,么么哒,亲一下'

二分支

二分支的语法结构如下:

if <条件>:
    <语句块1>
else:
    <语句块2>
  • <语句块1>是在条件满足后执行的一条或多条语句组

  • <语句块2>是在条件不满足后执行的一条或多条语句组

  • 注意缩进,<语句块2>也是通过4个空格的缩进与else形成包含关系。

二分支的执行流程图如下:

1659686314383

二分支语句用于区分<条件>的两种可能,True或者False,分别形成执行路径。

案例: 成绩是否及格(2)

通过二分支改进案例成绩是否及格

>>> score = input('请输入你的成绩>>>:')
请输入你的成绩>>>:90
>>> score = float(score)     # 转换类型

>>> if score < 60:        # 判断
...     print('没及格,赏一巴掌')
... else:
        print('有进步,么么哒,亲一下')
'有进步,么么哒,亲一下'

三目运算

二分支结构还有一种更简洁的表达方式,语法格式如下:

<表达式> if <条件> else <表达式2>

适合代码块为1行语句时,这种方式等价于C语言的三目运算符

改写上面的案例代码如下:

>>> score = input('请输入你的成绩>>>:')
请输入你的成绩>>>:90
>>> score = float(score)     # 转换类型
>>> print('没及格,赏一巴掌') if score < 60 else print('有进步,么么哒,亲一下')    
'有进步,么么哒,亲一下'

看起来是不是整洁很多。对于简单判断,三目运算可以将多行语句写成一行,简洁明了。

多分支

二分支的语法结构如下:

if <条件1>:
    <代码块1>
elif <条件2>:
    <代码块2>
...
else:
    <代码块3>

多分支是二分支的扩展,用于多个判断条件多条执行路径的情况。

多分支的执行流程图如下:

1659687159490

python依次执行判断条件,寻找第一个结果为True的条件,执行该条件下的代码块,同时结束后跳过整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,则执行else下的代码块,且else语句是可选的,也即是说可以没有else语句。

案例:成绩评价

上面的案例对成绩的评价太过粗糙了,通过多分支改进上面的案例。

请根据用户输入的成绩,按一下等级分区:

  • < 40: E
  • 40-60: D
  • 60-75: C
  • 75-85: B
  • 85-100: A
>>> score = input('请输入你的成绩>>>:')
请输入你的成绩>>>:90
>>> score = float(score)  # 转换类型

>>> if score < 40:        # 判断
...     print('等级:E')
... elif 40<= score < 60:
...     print('等级:D')
... elif 60<= score < 75:
...     print('等级:C')
... elif 75<= score < 85:
...     print('等级:B')
... else:
...     print('等级:A')
等级:A
posted @ 2022-08-20 14:01  python心蓝  阅读(385)  评论(0编辑  收藏  举报