本章要点:3.1程序的流程3.2顺序结构3.3选择结构3.4循环结构3.5错误和异常处理3.6综合应用:turtle模块的复杂图形绘制第3章程序流程控制
3.1程序的流程输入、处理和输出(IPO)程序通过输入接收待处理的数据(Input);然后执行相应的处理(Process);最后通过输出(Output)返回处理的结果输出结果输出是程序输出结果的方式。程序的输出方式包括控制台输出、图形输出、文件输出、网络输出等【例3.1】计算球体的表面积和体积的程序的IPO描述输入(I):输入r(球体的半径)处理(P):计算球体的表面积s=4*math.pi*r*r计算球体的体积v=4*math.pi*r*r*r/3输出(O):输出s和v输入数据输入是一个程序的开始。程序要处理的数据有多种来源,形成了多种输入方式,包括交互输入、参数输入、随机数据输入、文件输入、网络输入等。处理数据处理是程序对输入数据进行计算产生输出结果的过程。计算问题的处理方法统称为“算法”。程序处理输入输程序=算法+数据结构算法是执行特定任务的方法数据结构是一种存储数据的方式,有助于求解特定的问题描述算法:自然语言描述伪代码【例3.2】求解两个整数最大公约数的算法的自然语言描述求解两个整数的最大公约数(Greatest·Commom·Divisor,GCD)的一种算法是辗转相除法,又称欧几里得算法。辗转相除算法的自然语言描述如下。(1)对于已知的两个正整数m和n,使得mn。(2)m除以n得到余数r。(3)若r≠0,则令m←n,n←r,重复步骤(2),继续m除以n得到新的余数r。若仍然r≠0,则重复此过程,直到r=0为止。最后的m就是最大公约数。【例3.3】求解两个整数最大公约数的辗转相除算法的伪代码描述//求解m和n的最大公约数。GCD(m,n)=GCD(n,m·Mod·n).GCD(m,n)····While·(n·!=·0)····remainder·=m·Mod·n··//·计算余数····m·=·n····n·=·remainder····End·While····Return·mEnd·Gcd
【例3.4】求解两个整数最大公约数的Python代码实现(gcd.py)#求解m和n的最大公约数。GCD(m,n)=GCD(n,mModn)defgcd(m,n):if(mn):m,n=n,mwhile(n!=0):remainder=m%n #计算余数m=nn=remainderreturnmif__name__==__main__:print(24,36,的最大公约数为:,gcd(24,36))程序运行结果如下24·36·的最大公约数为:12
程序流程图【例3.5】使用程序流程图(如图3-2所示)描述计算所输入数据a的平方根的程序又称为程序框图,是描述程序运行具体步骤的图形表示流程图的基本元素主要包括以下几种开始框和结束框()。表示程序的开始和结束输入/输出框()。表示输入和输出数据。处理框()。表示要执行的流程或处理。判断框()。表示条件判断,根据判断的结果执行不同的分支。箭头线()。表示程序或算法的走向。
3.2顺序结构程序中语句执行的基本顺序按各语句出现位置的先后次序执行importmatha=float(input(请输入三角形的边长a:))b=float(input(请输入三角形的边长b:))c=float(input(请输入三角形的边长c:))h=(a+b+c)/2#三角形周长的一半area=math.sqrt(h*(h-a)*(h-b)*(h-c));#三角形面积print(str.format(三角形三边分别为:a={0},b={1},c={2},a,b,c))print(str.format(三角形的面积={0},area))【例3.1】顺序结构示例(area.py):已知三角形三条边的边长(为简单起见,假设这三条边可以构成三角形),求三角形的面积程序运行结果如下:请输入三角形的边长a:3请输入三角形的边长b:4请输入三角形的边长c:5三角形三边分别为:a=3.0,b=4.0,c=5.0三角形的面积=6.0