当前课程知识点:计算思维与人工智能基础 > 第三部分:python基础 > 第五章:程序控制结构 > 5.2条件结构
条件结构
计算机比其他计算工具的优势之处就在于
其具有逻辑判断能力
在分支选择方面
Python只支持if语句
if也是复合语句
在if中可以包括其他的语句
利用if语句可以实现分支选择
具体形式分为单分支选择
多分支选择和双分支选择三种结构
我们来看单分支选择
他的语句形式呢其实是
判断
条件
执行语句体
或者是判断条件执行一组语句体
它的格式是这样的
那么从他的流程图我们可以看到
这是一个条件
满足条件他可以执行语句块
否则的话就跳过执行的语句块
执行下面一条语句
来我们看右边这段代码
分别输入a,b,c的值
那么把输入的a的值赋给most这个变量
那么判断我们的b的值是否大于most
如果大于他的话
满足这个条件呢
我们就把b复制给most
否则我们就执行下一句
判断c是否大于most
如果满足条件
把c赋值给most
那么通过这样的选择的执行之后呢
输出most就是最大值
再来看一下分支选择
那么双分支选择是通过一个条件判断
满足条件执行一个语句块
不满足条件执行另外一个语句块
这样的一个过程
它的语句格式是if条件
那么后面跟冒号
满足条件执行语句体1
不满足条件的时候
他就执行什么语句体2
我们来看看一个例题
判断是否是闰年
那么输入一个年份呢
我们判断他是不是闰年的条件是什么呢
是能被4整除
但不能被100整除
或者是能被400整除
这样的呢就是闰年
那我们怎么样去通过分支语句去实现这个需求呢
首先我们需要判断一个重点是可以把一个年份输进来
好的
我们输入一个年份的值
要把它强制转换成整形
年份都是整形的
第二步呢
我们需要做什么呢
我们要去对这个条件
条件来进行给他赋值
条件是这个条件我们称之为flag
那么赋值是一个什么样的条件呢
是按照上面我们可以看能够被4整除
and不能被100整除
或者是能被400整除
那么这个呢得到的是true
或者false
这个year来通过这个逻辑表达式来得到一个结果
flag就是true或者false
那么下面呢我们就可以对这个条件进行判断
判断他是true的时候呢
我们就输出是闰年
false的时候
我们就说不是闰年
按照我们前面讲的结构
if flag满足条件
我们输出是闰年
else呢就输出不是闰年
下面我们在jupyter下看一下我们刚才这段代码的执行情况
我们运行后可以输入2000年
我们看2000年是能被400整除的
他应该是闰年
结果是闰年
我们再运行一下
我们再输入一个2004年
那他是能被4整除但是不能被100整除的
那应该也是闰年
我们看到的结果是闰年
我们再运行下
输入一个能被4整除但不能被
也能被100整除的
那就不是闰年
我们来看能被4整除
也能被100整除的
2100年
那么输入
他不是闰年
那么这个简单的测试下
我们这个判断闰年的这段代码
那么上面是一个简单的分支
输入一个值判断我们输入这个值是不是99
这也是一个双分支的结构
运行一下我们可以看一看
如果是输入99
那他结果就是猜对了
如果输入其他的数
我们随便输一个3
看他的结果就是猜的不对
另外呢
在选择中if语句呢
他还可以跟print连用
连用这样的或者跟赋值语句一起去用的
我们来看下面这个
也是输入一个n的值
那么这段代码呢
是通过if语句来判断n是不是大于5
大于5就输出
否则的话就输出小于5
我们也看他的执行情况
我们输入一个值大于5的45
我们可以看到他应该是输出大于5
结果是大于5
那么再运行一下
我们输入一个3
那他应该输出3是不满足大于5
应该输出什么小于5的
那么执行一下
看他是这样子的结果
下面我们看一下多分支选择结构的应用
我们看这个流程图
那么碰到条件的时候
if后面如果有一个条件判断他是满足条件执行语句块1
否则的话他可以再进行判断
叫elif来去判断这个条件
那么条件满足呢
执行语句块2
elif不满足的话
他就会再去判断elif加的条件
那么可以有多个elif
那么最后呢不满足的时候可以跟else来执行它对应的区块
那么这样的结构就叫多分支结构
我们来看这样的一个问题
输入数学成绩零到一百分
输出对应的等级是小于六十分是不及格
六十到七十分及格
七十到八十分之间中等
八十到九十之间是良好
九十分以上是优秀
那我们来看
如何用多分支去解决这样的一个问题呢
那我们在这个对应的我们这个流程图可以看到
if这个地方首先判断条件是什么呢
那当然我们要从九十开始判断
条件大于等于九十呢
那我们就称之为优秀
elif呢再判断的时候就是相当于在九十分以下
那么也就是在八十分以上
那就大于等于八十满足这个条件呢
那我们就是良好
否则的话
就在判断在八十分以下
是不是在七十分以上大于等于七十分
那我们就是中等
同样再可以判断大于等于六十分为及格
否则else呢后面就可以跟不及格
是这样的一个结构来解决我们上面这个问题的
那我们来看写代码怎么样写
第一步需要输入我们的数学成绩
那么通过input来输入
需要把它转换成数值类型
那eval是我们前面讲过的函数
那么输入数学成绩给math
下面就是对math的判断
判断第一个就要判断if math是不是大于等于九十分
那么大于等于九十分的
我们就让他输出优秀
否则那就会跟elif
elif后面条件是什么呀
大于等于八十分呢
我们输出良好
依此类推呢
后面是elif大于等于七十分是中等
大于等于六十分是及格
那么剩下的否则就是不及格
所以我们这个地方要跟else
else就输出不及格
好了
我们下面可以在jupyter下看一下这段代码的执行情况
我们看刚才写的这段代码
在jupyter下的执行结果是什么样子的
首先我们运行一下他
输入一个88
那他的正确输出应该是良好
运行一看
良好
我们再执行一下
我们输入个60
他应该是及格
我们看他的结果
及格
我们再输一个55分
它的运行情况是什么样子呢
不及格啊
那就是多分支可以输入不同的成绩呢
给出不同的评语
下面我们来看看这个在if elif else
这样的结构下是多分支结构
也可以是if else的复合结构的应用
我们来看这段代码
也是输入一个x
那么首先我们判断x大于等于0否
那么如果满足条件就是大于等于0的
下面这段代码的我们再判断他是不是大于0
大于0就是1
否则的话他就应该是什么呀
0
那这是if else是配对的
否则的话呢
这个else和这个if是配对
否则的话
他就是1
是这样的一个结果
就是-1
那么就1,0,-1的一个判断
我们也看一下它的执行的结果
我们给他输入一个
7
那他应该是y的结果应该是1
我们看结果是1
我们同样再运行一下
我们给他输入一个0
他的结果应该也是正常输出
是0
我们再让他执行
给他输入一个-9
他的正确输出应该是-1
那这个就是if else可以符合的使用
它的效果
其实跟我们的if else呢
是有同样的效果
关于多分支的选择结构呢
我们就给大家介绍到这儿
-章测试
-章测试
-第一章:python简介
--章测试
-第二章:编码规范
--2.2常量和变量
--章测试
-第三章:数据类型
--章测试
-第四章:基本运算
--4.2比较运算符
--4.3逻辑运算符
--4.4位运算符
--章测试
-第五章:程序控制结构
--5.1顺序结构
--5.2条件结构
--5.3循环结构
--5.4跳转结构
--5.5异常处理
--章测试
-第六章:函数、模块与面向对象
--6.2面向对象
--6.4模块与包
--章测试
-第七章:文件操作
--7.2文件的写入
--章测试
-第八章:python生态库
--章测试
-第九章:TensorFlow基础
--章测试
-第十章:实例分析与实践
--章测试
-第十一章:人工智能在自然语言中的应用
--章测试