1、全国计算机等级考试二级教程全国计算机等级考试二级教程Python语言语言程序设计程序设计(2018年版)【第第3章章】程序的控制结构程序的控制结构n程序的三种控制结构n程序的分支结构:单分支结构、二分支结构、多分支结构n程序的循环结构:遍历循环、无限循环、break和continue循环控制n程序的异常处理:try-except考纲考点知识导图程序的基本结构程序的流程图n程序流程图用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。n流程图的基本元素包括7种程序的流程图n起止框:表示程序逻辑的开始或结束;n判断框:表示一个判断条件,并根据判断结果选择
2、不同的执行路径;n处理框:表示一组处理过程,对应于顺序执行的程序逻辑;n输入输出框:表示程序中的数据输入或结果输出;n注释框:表示程序的注释;n流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径;n连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图。程序的流程图n程序流程图示例:由连接点A连接的一个程序程序的基本结构n程序由三种基本结构组成:顺序结构、分支结顺序结构、分支结构和循环结构构和循环结构。n任何程序都由这三种基本结构组合而成n这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成程序的基本结构n顺序结构是程序按照线性顺序依次执行的一种
3、运行方式,其中语句块1S1和语句块S2表示一个或一组顺序执行的语句程序的基本结构n分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,基础的分支结构是二分二分支结构支结构。由二分支结构会组合形成多分支结构程序的基本结构n循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构程序的基本结构n在三种基本控制逻辑基础上,Python语言进行了必要且适当的扩展。n在分支结构原理的基础上,Python增加了异常处理,使用try-except保留字n异常处理以程序异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择。异常处理是分支结
4、构的一种扩展。程序的基本结构n在循环结构原理的基础上,Python提供两个循环控制符break和和continue,对循环的执行过程进行控制。break控制符用来结束当前循环,continue控制符用来结束当前循环的当次循环过程,程序的分支结构单分支结构:if语句nPython的单分支结构使用if保留字对条件进行判断,使用方式如下if :语句块语句块n其中,if、:和前的缩进都是语法的一部分。是if条件满足后执行的一个或多个语句序列,缩进表达与if的包含关系。是一个产生True或False结果的语句,当结果为True时,执行,否则跳过。单分支结构:if语句n是一个或多个条件,多个条件间采用an
5、d或or进行逻辑组合。and表示多个条件“与”的关系,or表示多个条件“或”的关系12345#判断用户输入数字的奇偶性判断用户输入数字的奇偶性 s=eval(input(请输出一个整数:请输出一个整数:)ifs%2=0:print(这是个偶数这是个偶数)print(输入数字是输入数字是:,s)12345#判断用户输入数字的特定判断用户输入数字的特定 s=eval(input(请输出一个整数:请输出一个整数:)ifs%3=0ands%5=0:print(这个数字既能被这个数字既能被3整除,又能被整除,又能被5整除整除)print(输入数字是输入数字是:,s)二分支结构:if-else语句nPyt
6、hon的二分支结构使用if-else保留字对条件进行判断,语法格式如下:if :else:n其中,if、:和语句块前的缩进都是语法的一部分。二分支结构:if-else语句12345#判断用户输入数字的某个属性判断用户输入数字的某个属性s=eval(input(请输出一个整数:请输出一个整数:)ifs%3=0ands%5=0:print(这个数字能够同时被这个数字能够同时被3和和5整除整除)else:print(这个数字不能够同时被这个数字不能够同时被3和和5整除整除)n在if中满足即为True时执行,在if中不满足即为False时执行。简单说,二分支结构根据条件的True或False结果产生两
7、条路径。二分支结构:if-else语句n二分支结构还有一种更简洁的表达方式,适合和都只包含简单表达式的情况,语法格式如下:if else 1234#判断用户输入数字的某个属性判断用户输入数字的某个属性s=eval(input(请输出一个整数:请输出一个整数:)token=ifs%3=0ands%5=0else不不print(这个数字这个数字能够同时被能够同时被3和和5整除整除.format(token)多分支结构:if-elif-else语句nPython的if-elif-else描述多分支结构,语句格式如下:if:elif:.else:多分支结构:if-elif-else语句n多分支结构通常
8、用于判断同一个条件或一类条件的多个执行路径。要注意,Python会按照多分支结构的代码顺序依次评估判断条件,寻找并执行第一个结果为True条件对应的语句块,当前语句块执行后跳过整个if-elif-else结构。n利用多分支结构编写代码时要注意多个逻辑条件的先后关系。多分支结构:if-elif-else语句n获取用户输入的一个百分制成绩,转换成五分制,给出对应的A、B、C、D、E等级。12345678910111213#将百分制成绩转换为五分制成绩将百分制成绩转换为五分制成绩score=eval(input(请输出一个百分制成绩:请输出一个百分制成绩:)ifscore=60.0:grade=De
9、lifscore=70.0:grade=Celifscore=80.0:grade=Belifscore=90.0:grade=Aelse:grade=Eprint(对应的五分制成绩是:对应的五分制成绩是:.format(grade)请输出一个百分制成绩:80对应的五分制成绩是:对应的五分制成绩是:D多分支结构:if-elif-else语句n显然,百分制80分不应该是等级D,上述代码运行正确但逻辑存在错误,在于弄错了多个逻辑条件的先后关系,修改后代码如下。12345678910111213#将百分制成绩转换为五分制成绩将百分制成绩转换为五分制成绩score=eval(input(请输出一个百分
10、制成绩:请输出一个百分制成绩:)ifscore=90.0:grade=Aelifscore=80.0:grade=Belifscore=70.0:grade=Celifscore=60.0:grade=Delse:grade=Eprint(对应的五分制成绩是:对应的五分制成绩是:.format(grade)判断条件及组合n分支结构中的判断条件可以使用任何能够产生True或False的语句或函数。形成判断条件最常见的方式是采用关系操作符判断条件及组合nPython语言中,任何非零的数值、非空的数据类型都等价于True,0或空类型等价于False,可以直接用作判断条件。0=FalseTrue=Tr
11、ueFalse4PythonpythonFalse判断条件及组合nPython语言使用保留字not、and和和or对条件进行逻辑运算或组着。n保留字not表示单个条件的“否”关系,and表示多个条件之间的“与”关系,保留字or表示多个条件之间的“或”关系。notTrueFalsea=80(a100)or(a50anda90)True程序的循环结构程序的循环结构nPython语言的循环结构包括两种:遍历循环和无限循环。n遍历循环遍历循环使用保留字for依次提取遍历结构各元素进行处理;n无限循环无限循环使用保留字while根据判断条件执行程序。遍历循环:forn遍历循环可以理解为从遍历结构中逐一提
12、取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。for in :n遍历结构可以是字符串、文件、range()函数或组合数据类型等。遍历循环:forn对于字符串,可以逐一遍历字符串的每个字符,基本使用方式如下:forin:forcinPython:print(c)Python遍历循环:forn使用range()函数,可以指定语句块的循环次数,基本使用方式如下:forinrange():foriinrange(5):print(i)01234遍历循环:forn遍历循环还有一种扩展模式,使用方法如下:forin:else:n当for
13、循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行并结束,因此,可以在中放置判断循环执行情况的语句。遍历循环:for12345forsinPY:print(循环执行中循环执行中:+s)else:s=循环正常结束循环正常结束print(s)循环执行中:P循环执行中:Y循环正常结束无限循环:whilenPython通过保留字while实现无限循环while :n当程序执行到while语句时,判断条件如果为True,执行循环体语句,语句结束后返回再次判断while语句的条件;当条件为False时,循环终止,执行与while同级别缩进的后续语句。无限循环:whi
14、len=0whilen10:print(n)n=n+30369无限循环:whilen无限循环也有一种使用保留字else的扩展模式,使用方法如下:while:else:n在这种扩展模式中,当while循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行后才执行,因此,可以在语句块2中放置判断循环执行情况的语句。无限循环:while1234567s,idx=PY,0whileidx循环执行中:P循环执行中:Y循环正常结束循环控制:break和continuen循环结构有两个辅助循环控制的保留字:break和和continue。break用来跳出最内层for或while循
15、环,脱离该循环后程序从循环后代码继续执行。123456whileTrue:s=input(请输入一个名字请输入一个名字(按按Q退出退出):)ifs=Q:breakprint(输入的名字是输入的名字是:,s)print(程序退出程序退出)请输入一个名字(按Q退出):毛泽东毛泽东输入的名字是:毛泽东请输入一个名字(按Q退出):邓小平邓小平输入的名字是:邓小平请输入一个名字(按Q退出):Q程序退出循环控制:break和continuen如果有2层或多层循环,break退出最内层循环。ncontinue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。1234forsinPYT
16、HON:ifs=Yors=Y:continueprint(s,end=)PTHONncontinue语句和break语句的区别是:continue语句只结束本次循环,不终止整个循环的执行,而break具备结束循环的能力。程序的异常处理程序的异常处理nPython程序一般对输入有一定要求,但当实际输入不满足程序要求时,可能会产生程序的运行错误。n=eval(input(请输入一个数字请输入一个数字:)请输入一个整数:pythonTraceback(mostrecentcalllast):File,line1,inn=eval(input(请输入一个数字:)File,line1,inNameErr
17、or:namepythonisnotdefined程序的异常处理n由于使用了eval()函数,如果用户输入不是一个数字则可能报错。这类由于输入与预期不匹配造成的错误有很多种可能,不能逐一列出可能性进行判断。为了保证程序运行的稳定性,这类运行错误应该被程序捕获并合理控制。程序的异常处理nPython语言使用保留字try和except进行异常处理,基本的语法格式如下:。try:except:n语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2。程序的异常处理12345try:n=eval(input(请输入一个数字请输入一个数字:)print(输入数字
18、的输入数字的3次方值为次方值为:,n*3)except:print(输入错误,请输入一个数字输入错误,请输入一个数字!)请输入一个数字:1010输入数字的3次方值为:1030301000请输入一个数字:python输入错误,请输入一个数字!程序的异常处理foriinrange(5):print(10/i,end=)Traceback(mostrecentcalllast):File,line2,inprint(10/i,end=)ZeroDivisionError:divisionbyzeron除了输入之外,异常处理还可以处理程序执行中的运行异常。12345try:foriinrange(5)
19、print(10/i,end=)except:print(某种原因,出错了!某种原因,出错了!)某种原因,出错了!实例解析:猜数字游戏实例解析:猜数字游戏n编写一个“猜数字游戏”的程序,在1到1000之间随机产生一个数,然后请用户循环猜测这个数字,对于每个答案只回答“猜大了”或“猜小了”,直到猜测准确为止,输出用户的猜测次数。实例解析:猜数字游戏n为了产生随机数,需要使用Python语言的随机数标准库randomn根据程序需求,需要考虑不断地让用户循环输入猜测值,并根据猜测值和目标值之间的比较决定程序逻辑。12importrandomtarget=random.randint(1,1000)
20、实例解析:猜数字游戏12345678910111213importrandomtarget=random.randint(1,1000)count=0whileTrue:guess=eval(input(请输入一个猜测的整数请输入一个猜测的整数(1至至1000):)count=count+1ifguesstarget:print(猜大了猜大了)elifguesstarget:print(猜大了猜大了)elifguess请输入一个猜测的整数(1至1000):500猜大了请输入一个猜测的整数(1至1000):Python输入有误,请重试,不计入猜测次数哦!请输入一个猜测的整数(1至1000):26
21、0猜小了请输入一个猜测的整数(1至1000):380猜大了请输入一个猜测的整数(1至1000):300猜小了请输入一个猜测的整数(1至1000):340猜小了请输入一个猜测的整数(1至1000):360猜小了请输入一个猜测的整数(1至1000):370猜对了此轮的猜测次数是:7本章小结本章讲解了程序的三种控制结构,具体讲解了分支结构的三种类型:单分支结构、二分支结构合多分支结构,以及判断条件的组合。进一步具体讲解了循环结构的两种类型:遍历循环和无限循环,以及循环控制符break和continue。最后,讲解了程序的基本异常处理方法。通过猜数字游戏的实例帮助读者理解程序结构和异常处理的运用。猜数字就是人生历程,运气重要?方法重要?或许,快乐的经历才最重要。






