多分支结构流程图
双分支选择结构就是在if之后程序流程走向两个分支,一个分支处理条件表达式为真的情况,一个分支处理条件表达式为假的情况。
其语法格式如下:
if 条件表达式:
else:
下面用一个简单的例题说说双分支选择结构的具体用法。
题目
从键盘输入三个数值,判断这三个数值能否构成三角形
题目解析
构成三角形的条件是任意两边之和大于第三边,关键就是这任意两个字,对于三个数值来说,任意两个数求和有三种情况,这三种情况的组合都要大于第三边,即这三种情况要同时满足,要用逻辑与(and)来连接这三种情况。
代码
代码解析
前三行是从键盘输入三个数分别赋值给三个变量;
第4行的表达式表示三个数中任意两个数求和的三种情况,用and进行连接,注意表达式之后有一个冒号;
第5行处理表达式为真的情况,注意缩进;
第6行单独1个else加冒号,构成if...else...的双分支选择结构;
最后一行处理表达式为假的情况,注意缩进。如果把题目改一下,自己试试能不能做得出来:
从键盘输入三个数值,判断这三个数值能否构成三角形,如果能构成三角形,求三角形的面积(提示:已知三角形的三条边用海伦公式求面积)。
海伦公式
image.png
代码
代码解析
第 7 行用于求三角形的面积,使用了math库的sqrt()函数进行开平方根,这一行的代码也可以写成:
(p(p-a)(p-b)(p-c))*0.5
6-8行用于处理表达式为真的情况,这是由3行代码构成的语句块,这是一个整体,要么全部被执行,要么全部不被执行,所以这三行代码是对齐并且缩进的。
当我们在做一个决策时,可能会面临有多个选择,比如国庆放假前我们肯定想过,七天去哪呢?旅游?玩游戏?追剧?还是学python?这就是一个多分支的选择结构。这种结构的程序流程图如下图所示:
image.png
在上图中,有N-1个表达式,程序先判断第1个表达式是否为真,若是,执行语句块1,退出选择结构;若第1个表达式为假,再判断第2个表达式,以此类推。不管哪个表达式为真,执行完对应的语句块后立即退出选择选择结构,若N-1个表达式全为假,则执行第N个语句块。接下来用一道题目来说说它的用法。题目
输入一元二次方程axx+b*x+c=0的三个系数a,b,c,根据以下几种情况输出相应的结果:
a=0,输出“不是二次方程”;
delta=0,求两个相等的实根并输出;
delta>0,求出两个不等的实根并输出;
delta<0,输出“有两个共轭复根”;代码
代码解析
第8行elif是else if 的组合缩写,若a==0为假,则判断delta==0是否为真;
最后一个分支用else:,这里不需要任何的表达式,意思是以上表达式全为假时才执行else;
再次强调每个分支表达式后面都有一个冒号,且冒号下一行必须缩进,这是python语言的特色,也可以理解为这是它的语法。
代码编写完成后要对所有分支进行测试,所有分支测试没有问题才能确定此代码是正确的。切记一点,代码写完还没完,测试完成才算完,语法没错不代表运行时不会出错。见过太多的学生写完代码一看没语法错误,直接就停下来不运行看结果了,这是初学者的大忌。
if-elif-else结构功能强大,但仅适合用于只有一个条件满足的情况:遇到通过了测试后,python就跳过余下的测试。
发表评论
暂时没有评论,来抢沙发吧~