分支结构
到目前为止,在你编写的程序中,语句都是逐条执行的。现在更进一步,让程序选择是否执行特定的语句块。前边的代码都是最基本的“输入-简单处理-输出”模式,而实际的业务总是会存在着各定,根据不同的条件,会执行不同的代码,这就需要分支结构的知识了。
Python3支持布尔类型的数据,布尔类型只有True(真)和False(假)两种值,但是我们用于if判断时,下面的值都将被解释器视为假:
FalseNone0""()[]{}
换而言之,标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空
字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真①,包括特殊值True。明白了吗?这意味着任何Python值都可解释为真值。乍一看这有点令人迷惑,但也很有用。虽然可供选择的真值非常多,但标准真值为True和False。在有些语言(如C语言和2.3之前的Python版本)中,标准真值为0(表示假)和1(表示真)。实际上,True和False不过是0和1的别名,虽然看起来不同,但作用是相同的。
1、if结构
任务1-1:某航空公司征召飞行员的条件是视力超过1.6,身高在厘米和厘米之间,当符合条件时,输出:恭喜你被录取了,并赠送大红花。请编写一段程序代码,模拟这个过程。
分析:量化的结果有两个值,视力值float类型、身高值int型。遇到“如果……”或“当……时”这种表达就要用分支结构了。
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:
Python中if语句的一般形式如下所示:
statement_block_3
说明:
如果"condition_1"为True将执行"statement_block_1"块语句
如果"condition_1"为False,将判断"condition_2"
如果"condition_2"为True将执行"statement_block_2"块语句
如果"condition_2"为False,将执行"statement_block_3"块语句注意:
Python中用elif代替了elseif,所以if语句的关键字为:if–elif–else。
每个条件后面要使用冒号:,表示接下来是满足条件后要执行的语句块。
使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。注意哦,这里必须要有缩进哦,否则就不是分支结构的语句了。
在Python中没有switch–case语句。
上述任务代码如下:
2、比较、关系运算符比较运算符
python中的比较运算符如下表:
其中,这个符号在Python3中已经舍弃。这些运算符不但可以运用在数字之间,也可以运用在数字和布尔、数字与字符串、字符串与字符串等的比较运算。
逻辑运算符
这些运算符的应用会在下面的内容中涉及到。
if-else结构
任务1-2:如果张飞的外语成绩大于90分并且语言成绩85,军师就奖励他一把七星宝剑,否则就罚他去打扫马厩。
分析:与之前的任务相比,我们多了一个否则的处理分支,这时就要用到if-else结构了。
我们把成绩提取出来分别定为变量eScore,cScore,用英文描述并结合已有知识,上边的过程就变为:
if(eScore90andcScore85):#运用支逻辑运算符
print("奖励一把七星宝剑")else:#否则
print("打扫马厩");
实际上,上边的代码,就是此业务的核心实现,同样两个注意点:
else结构放在if的下边和if搭配使用。
if和else下边用:表达一个管辖范围。
请大家自行完成此任务的代码编写工作。
多重if结构
任务1-3:将张飞的考试成绩转换为优、良、中、差的评价。具体要求如下:
成绩=90:优秀;成绩=80:良好;成绩=60:中等;成绩60:差
分析:此业务需要用到多重if结构来实现,其流程和语法如下:注意:前面已经说过,如果有多个分支,python使用elif代替了elseif,所以核心实现代码如下:
思考:本案例中的elif相当于js中的什么呢?
任务学习
任务1-4:数字猜谜游戏,设计一个数字让别人来猜,猜大了你要提示:猜的数字大了...,猜小了你要提示:猜的数字小了...,直至猜正确为止。
分析:直到猜正确为止,那就是使用到循环了,python的循环也是使用while关键字。
实现代码如下: