第三章-4-分支结构
==========分支结构==========
本节对应书本p75-p80
分支结构对应现实生活中需要根据条件来选择后续步骤的实例
比如说
如果刷了牙的话:去吃早饭;
如果没刷牙的话:先去刷牙;
在这个事件中,刷没刷牙就是我们要判断的条件;根据条件的不同去做不同的事(吃早饭或去刷牙)
那这种选择如何在python中用代码表述呢?
===单分支结构===
if <条件>:
<语句块>
【如果 <条件>为真,则执行<语句块中的内容>】
*注意
- 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
比如

1.赋值a为整型10
2.判断条件 a>5;10>5返回True,为真(关系运算符返回True或者False,我们在第三章第一节已经介绍过)
3.条件为真则执行语句块 a=a+1;赋值语句先执行等号右边 将11+1的值赋值给等号左边的a;a=11;a被重新赋值
4.print(a)输出变量a的值,即11
【输出】11
======
又比如

1.赋值a为整型4
2.判断条件 a>5;4>5返回False,为假
3.条件为假则不执行语句块内容,继续执行分支结构后续语句
4.print(a)输出变量a的值,即4
【输出】4
===双分支结构===
if <条件>:
<语句块1>
else:
<语句块2>
【如果<条件>为真,执行<语句块1>的内容;否则(条件为假),则执行<语句块2>的内容】
======
如上程序
如果我们在键盘上输入10;
1.int(input())函数嵌套函数,由内而外,先执行input()获取我们的输入10,并返回字符串型的'10';int('10')返回整型10;执行赋值语句a=10;
2.判断 if a>5;10>5;条件为真,执行if下的语句块print(a+1);输出11
3.执行了if则不执行else;分支结构结束,执行后续语句print('over')输出了字符串'over'
【输出】11,'over'
分支结构的特点是:当执行某一分支,其他分支被忽略,可以借助下图流程图来理解

=======
同理,如果我们输入2

1.a=2
2.判断if a>5;2>5;条件为假;执行else下属语句块print(a+2);输出4
3.执行后续语句print('over')输出了字符串'over'
===多分支结构===
我们可以用多分支结构来进行更加细致的判断
if <条件判断1>:
<语句块1>
elif <条件判断2>:
<语句块2>
…….
elif <条件判断n>:
<语句块n>
else:
<语句块n+1>
【只要条件为真,就执行其所对应的语句块,然后退出该判断结构;当if语句和elif子句的条件都不成立时,执行else子句的语句块】
举例如下

1.赋值age为18
2.先判断 age<18为假
3.判断 elif age>=18 and age<30,该条件为真;执行该子句下的语句块print('青年');输出字符串'青年'
4.结束该分支结构,执行后续语句print('over');输出字符串'over'
【输出】'青年','over'
======

修改age的赋值为100
显然不满足if和所有elif子句中的条件;执行else下的语句块print('老年');输出字符串'老年'
结束分支结构,执行后续语句print('over');输出字符串'over'
【输出】'老年','over'
======
当然,else子句是可以省略的

1.赋值age为100
2.不满足if和elif子句中的条件;结束分支结构,执行后续语句
3.执行print('over');输出字符串'over'
【输出】'over'
===缩进===
在上面的代码中,同学们应该已经观察到了,有一些语句相较其他语句往里面缩进了
python最具特色的就是使用缩进来表示代码块
比如下面的这个程序,print('1')是if所属语句块;而print('2')是后续语句

如果我们没有缩进

哪些部分是if下属语句块?哪些又是后续语句?就区分不开了!
*注意,缩进的空格数是可变的,但是同一代码块的语句必须包含相同的缩进空格数
举例如下


===例题===
#1
请编写程序完成如下要求:
输入一个成绩,按成绩对应为相应等级输出
[0,60):F级
[60,80):C级
[80,90):B级
[90,100]:A级
比如:
输入成绩为 95,输出等级A
输入成绩为46,输出等级为F
思考:
我们可以先用input函数获取键盘输入,但要注意input函数获取键盘输入后返回的是字符串类型,所以要再用int函数转字符串为整型
然后我们可以用多分支结构来实现输出对应成绩;判断成绩在0~60的话,就用print函数输出‘F’,其他区间同理
答案

#2
请编写编写程序完成如下要求:
输入一个自然数,判断它是奇数还是偶数并输出
比如:
输入12;输出偶数
输入7;输出奇数
思考:
首先要获取这个数的输入
然后我们思考下,如何判断一个数是奇数还是偶数?
一个偶数除以2,余数是多少? 4/2 = 2 …0
一个奇数除以2,余数是多少? 5/2 = 2 …1
答案
写法一

写法二

写法三

===思考===

上面的程序为何输出了字符串'teenager'?
因为分支结构一旦执行其中一条支路,就不再执行其他分支的条件判断
故20>6成立后执行print('teenager')然后便结束了该分支结构

浙公网安备 33010602011771号