程序的控制结构包括三部分:
顺序结构:指程序按照线性顺序逐渐执行的结构
分支结构:指程序根据条件有选择的向程序运行方向执行的结构
循环结构:指程序根据一定条件向程序运行之后,也就是程序曾经执行过方向返回执行的这样的结构。
这三种结构覆盖了程序控制的全部内容。
分支结构是根据判断条件结果而选择不同向前路径的运行方式
单分支结构,语法格式如下:
if 判断条件:
代码段
以上格式中的if关键字和冒号分别标识if语句的起始和结束,判断条件与if关键字以空格分隔,代码段通过缩进与if语句产生关联。类似“如果,则”
流程图如下所示:
通过流程图,我们可知,先进行条件的判断,当条件判断成立时,即为True时,运行语句块里面的语句后输出,当条件判断不成立时,即为false时,直接输出即可。
同时格式也可以写为
if true:#其中的true即为对条件的判断的真,即符合判断条件。
print("条件正确”)
示例一:考试成绩评估程序
考试成绩不低于60分的学生为“考试及格”
代码如下:
score=eval(input("请输入要判断的成绩:"))#eval,评估函数,去掉参数最外侧引号并执行余下语句的函数 if score>=60: print("考试及格!")
当所评估成绩符合if后面的判断条件时运行界面如下:
当所评估成绩不符合if后面的判断条件时直接输出,运行界面如下:
示例二:猜数字程序
如果所猜测数字与给定条件符合则进行输出
代码如下所示:
guess=eval(input("请输入要猜测的数字:"))#eval,评估函数,去掉参数最外侧引号并执行余下语句的函数 if guess==90: print('猜对了')
符合判断条件的运行界面如下所示:
不符合判断条件的运行界面如下所示:
二分支结构是根据条件判断的不同而选择不同执行路径的这么一种结构
if-else语句的语法格式如下:
if 判断条件:
代码段1
else:
代码段2
执行if-else语句时,如果判断条件成立,执行if语句后面的代码段1,否则执行else语句后面的代码段2.
流程图如下所示:
根据流程图可知,代码格式也可以这么写:
if True:#其中的True即为对条件的判断的真,即符合判断条件。
print("语句块1")
else :
print("语句块2")
示例一:考试成绩评估程序
考试成绩不低于60分的学生为“考试及格”,低于60分即为”考试不及格“
运行代码如下:
score=eval(input("请输入要评估的成绩:")) if score>=60: print("考试及格") else: print("考试不及格")
条件为True时运行截图如下:
条件为false时运行截图如下:
示例二:猜数字
如果所猜测数字与给定条件符合则进行输出
代码如下:
guess=eval(input("请输入要猜测的数字:")) if guess==90: print("猜对了") else: print("猜错了")
条件为False运行界面如图:
条件为True运行界面如图:
紧凑形式:适用于简单表达式的二分支结构:
<表达式1>if<条件>else<表达式2>
表达式是语句的一部分
语句为带赋值形式的有符号构成的语句
示例如下:猜数字程序
示例代码如下:
guess=eval(input("请输入要猜测的数字:")) print("猜{}了".format("对" if guess==99 else "错"))
条件为True运行界面如图:
条件为False运行界面如图:
if-elif-else语句格式如下所示:
if 判断条件:
代码段1
elif 判断条件2:
代码段2
elif 判断条件3:
代码段3
...
else:
代码段n
流程图如下:
对不同分数分类的问题:
代码如下所示:
score=eval(input("请输入要评估的成绩:")) if score>=60: grade='D' elif score>=70: grade='C' elif score>=80: grade='B' elif score>=90: grade='A' print("输入成绩属于级别{}".format(grade))
对于这个代码我们看运行结果如下:
通过运行我们可以得知,当成绩为80或者60时,满足第一个if语句的判断条件,即可输出,
出现这种情况我们可以得知是由于运行正确,逻辑错误(在设置不同的条件的时候,它的先后关系以及包含关系出现了错误,即判断条件包含了以下的内容。所以我们要注意多条件之间的包含关系,还要注意取值范围的覆盖。
经过修改。我们得到的代码如下:
第一种修改方法: 将成绩顺序由高到低即可判断: score=eval(input("请输入要评估的成绩:")) if score>=90: grade = 'A' elif score >= 80: grade = 'B' elif score >= 70: grade = 'C' elif score >= 60: grade = 'D' print("输入成绩属于级别{}".format(grade)) 第二种修改方法: 设置 score=eval(input("请输入要评估的成绩:")) if score>=90: print("grade='A'") elif 80 <= score < 90: print("grade='B'") elif 70 <= score < 80: print("grade='C'") elif 60 <= score < 70: print("grade='D'") else: print("grade='E'")
运行界面如下所示:
第一种方法输出:
第二种方法输出: