if分支语句
if单分支
if
单分支的语法结构如下:
if <条件>:
语句块
- 注意条件语句结束后要紧跟冒号
- 语句块是
if
条件满足条件后执行的一条或多条语句组 - 语句块中的语句通过缩进与
if
语句所在的行形成包含关系 - 缩进按照规范为4个空格
if
单分支的执行流程图如下:
if
语句首先会计算<条件>
表达式,如果结果为Ture
则会执行所包含的语句块,结果为False
则会跳过所包含的语句块。if
结构中的语句块的执行是否依赖条件判读,但无论什么情况,控制都会转到if
结构的下一条语句。
案例:成绩是否及格
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
形成包含关系。
二分支的执行流程图如下:
二分支语句用于区分<条件>
的两种可能,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>
多分支是二分支的扩展,用于多个判断条件多条执行路径的情况。
多分支的执行流程图如下:
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