首页 python程序的控制结构

python程序的控制结构

举报
开通vip

python程序的控制结构Python语言程序设计第4章程序的控制结构程序的基本结构程序的流程图程序流程图用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。流程图的基本元素包括7种程序的流程图程序流程图示例:由连接点A连接的一个程序程序的基本结构顺序结构是程序的基础,但单一的顺序结构不可能解决所有问题。程序由三种基本结构组成:顺序结构分支结构循环结构这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成程序的基本结构顺序结构是程序按照线性顺序依次执行的一种运行方式,其中语句块1S...

python程序的控制结构
Python语言程序设计第4章程序的控制结构程序的基本结构程序的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图程序 流程图 破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word 用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。流程图的基本元素包括7种程序的流程图程序流程图示例:由连接点A连接的一个程序程序的基本结构顺序结构是程序的基础,但单一的顺序结构不可能解决所有问题。程序由三种基本结构组成:顺序结构分支结构循环结构这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成程序的基本结构顺序结构是程序按照线性顺序依次执行的一种运行方式,其中语句块1S1和语句块S2表示一个或一组顺序执行的语句程序的基本结构分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。由二分支结构会组合形成多分支结构程序的基本结构循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构程序的基本结构实例对于一个计算问题,可以用IPO描述、流程图描述或者直接以Python代码方式描述微实例4.1:圆面积和周长的计算。输入:圆半径R处理:圆面积:S=π*R*R圆周长:L=2*π*R输出:圆面积S、周长L1234R=eval(input("请输入圆半径:"))S=3.1415*R*RL=2*3.1415*Rprint("面积和周长:",S,L)问题IPO描述Python代码描述程序的基本结构实例微实例4.2:实数绝对值的计算。1234R=eval(input("输入实数:"))if(R<0):R=-Rprint("绝对值",R)(a)问题IPO描述(b)流程图描述(c)Python代码描述程序的基本结构实例微实例4.3:整数累加。输入:正整数R处理:S=1+2+3+…+R输出:输出S123456R=eval(input("请输入正整数:"))i,S=0,0while(i<=R):S=S+ii=i+1print("累加求和",S)(a)问题IPO描述(b)流程图描述(c)Python代码描述程序的基本结构实例IPO描述主要用于区分程序的输入输出关系,重点在于结构划分,算法主要采用自然语言描述流程图描述侧重于描述算法的具体流程关系,流程图的结构化关系相比自然语言描述更进一步,有助于阐述算法的具体操作过程Python代码描述是最终的程序产出,最为细致。程序的分支结构单分支结构:if语句Python中if语句的语法格式如下:if<条件>:语句块语句块是if条件满足后执行的一个或多个语句序列语句块中语句通过与if所在行形成缩进表达包含关系if语句首先评估<条件>的结果值,如果结果为True,则执行语句块里的语句序列,然后控制转向程序的下一条语句。如果结果为False,语句块里的语句会被跳过。布尔类型(bool)TrueFlasebool函数:bool(2)>>>A=1>2>>>type(A)数字非零为True字符串为True,空字符串为False关系运算符if语中<条件>部分可以使用任何能够产生True或False的语句形成判断条件最常见的方式是采用关系操作符Python语言共有6个关系操作符操作符数学符号操作符含义< < 小于<=≤小于等于>=≥大于等于> > 大于===等于!=不等于逻辑操作符(notandor)优先级是not>and>or逻辑操作符and和or也称作短路操作符(short-circuitlogic):它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果A和C为真而B为假,AandBandC不会解析C 3and4,4and33or4(3),4or3(4)单分支结构:if语句if语句的控制流程图if语句中语句块执行与否依赖于条件判断。但无论什么情况,控制都会转到if语句后与该语句同级别的下一条语句单分支结构:if语句微实例4.4:PM2.5空气质量提醒(1)输入:接收外部输入PM2.5值处理:ifPM2.5值>=75,打印空气污染警告if35<=PM2.5值<75,打印空气污染警告ifPM2.5值<35,打印空气质量优,建议户外运动输出:打印空气质量提醒微实例4.4m4.4PM25Warning.py   1234567PM=eval(input("请输入PM2.5数值:"))if0<=PM<35:print("空气优质,快去户外运动!")if35<=PM<75:print("空气良好,适度户外活动!")if75<=PM:print("空气污染,请小心!")  二分支结构:if-else语句Python中if-else语句用来形成二分支结构,语法格式如下:if<条件>:<语句块1>else:<语句块2><语句块1>是在if条件满足后执行的一个或多个语句序列<语句块2>是if条件不满足后执行的语句序列二分支语句用于区分<条件>的两种可能True或者False,分别形成执行路径二分支结构:if-else语句微实例4.5:PM2.5空气质量提醒(2)微实例4.5m4.5PM25Warning.py   12345PM=eval(input("请输入PM2.5数值:"))ifPM>=75:print("空气存在污染,请小心!")else:print("空气没有污染,可以开展户外运动!")  二分支结构:if-else语句二分支结构还有一种更简洁的表达方式,适合通过判断返回特定值,语法格式如下:<表达式1>if<条件>else<表达式2>  12PM=eval(input("请输入PM2.5数值:"))print("空气{}污染!".format("存在"ifPM>=75else"没有"))  二分支结构:if-else语句>>>count=2>>>countifcount!=0else"不存在"2>>>count=0>>>countifcount!=0else"不存在""不存在"if…else的紧凑结构非常适合对特殊值处理的情况,如下:多分支结构:if-elif-else语句Python的if-elif-else描述多分支结构,语句格式如下:if<条件1>:<语句块1>elif<条件2>:<语句块2>...else:<语句块N>多分支结构:if-elif-else语句多分支结构是二分支结构的扩展,这种形式通常用于设置同一个判断条件的多条执行路径。Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,else下面的语句块被执行。else子句是可选的多分支结构:if-elif-else语句微实例4.4通过多条独立的if语句对同一个变量PM进行判断,这种情况更适合多分支结构,改造后的代码如下  1234567PM=eval(input("请输入PM2.5数值:"))if0<=PM<35:print("空气优质,快去户外运动!")elif35<=PM<75:print("空气良好,适度户外活动!")else:print("空气污染,请小心!")  身体质量指数BMIBMI的定义如下:BMI=体重(kg)÷身高2(m2)例如,一个人身高1.75米、体重75公斤,他的BMI值为24.49身体质量指数BMI分类国际BMI值(kg/m2)国内BMI值(kg/m2)偏瘦<18.5<18.5正常18.5~2518.5~24偏胖25~3024~28肥胖>=30>=28编写一个根据体重和身高计算BMI值的程序,并同时输出国际和国内的BMI指标建议值身体质量指数BMI实例代码5.1e5.1CalBMI.py   12 345678910111213141516171819202122#e5.1CalBMI.pyheight,weight=eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))bmi=weight/pow(height,2)print("BMI数值为:{:.2f}".format(bmi))wto,dom="",""ifbmi<18.5:#WTO 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 wto="偏瘦"elifbmi<25:#18.5<=bmi<25wto="正常"elifbmi<30:#25<=bmi<30wto="偏胖"else:wto="肥胖"ifbmi<18.5:#我国卫生部标准dom="偏瘦"elifbmi<24:#18.5<=bmi<24dom="正常"elifbmi<28:#24<=bmi<28dom="偏胖"else:dom="肥胖"print("BMI指标为:国际'{0}',国内'{1}'".format(wto,dom))  >>> 请输入身高(米)和体重(公斤)[逗号隔开]:1.75,75BMI数值为:24.49BMI指标为:国际'正常',国内'偏胖'实例代码5.2e5.2CalBMI.py   12 3456789101112131415161718#e5.2CalBMI.pyheight,weight=eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))bmi=weight/pow(height,2)print("BMI数值为:{:.2f}".format(bmi))wto,dom="",""ifbmi<18.5:wto,dom="偏瘦","偏瘦"elif18.5<=bmi<24:wto,dom="正常","正常"elif24<=bmi<25:wto,dom="正常","偏胖"elif25<=bmi<28:wto,dom="偏胖","偏胖"elif28<=bmi<30:wto,dom="偏胖","肥胖"else:wto,dom="肥胖","肥胖"print("BMI指标为:国际'{0}',国内'{1}'".format(wto,dom))  程序的循环结构遍历循环:for语句遍历循环:根据循环执行次数的确定性,循环可以分为确定次数循环和非确定次数循环。确定次数循环指循环体对循环次数有明确的定义循环次数采用遍历结构中元素个数来体现Python通过保留字for实现“遍历循环”:for<循环变量>in<遍历结构>:<语句块>遍历循环:for语句遍历结构可以是字符串、文件、组合数据类型或range()函数:循环N次foriinrange(N):<语句块>遍历文件fi的每一行forlineinfi:<语句块>遍历字符串sforcins:<语句块>遍历列表lsforiteminls:<语句块>遍历循环还有一种扩展模式,使用方法如下:for<循环变量>in<遍历结构>:<语句块1>else:<语句块2>遍历循环:for语句当for循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行并结束,因此,可以在<语句块2>中放置判断循环执行情况的语句。  12345forsin"BIT":print("循环进行中:"+s)else:s="循环正常结束"print(s)  >>> 循环进行中:B循环进行中:I循环进行中:T循环正常结束无限循环:while语句无限循环:无限循环一直保持循环操作直到特定循环条件不被满足才结束,不需要提前知道确定循环次数。Python通过保留字while实现无限循环,使用方法如下:while<条件>:<语句块>语句块无限循环:while语句无限循环也有一种使用保留字else的扩展模式:while<条件>:<语句块1>else:<语句块2>  1234567s,idx="BIT",0whileidx<len(s):print("循环进行中:"+s[idx])idx+=1else:s="循环正常结束"print(s)  >>> 循环进行中:B循环进行中:I循环进行中:T循环正常结束循环保留字:break和continue循环结构有两个辅助保留字:break和continue,它们用来辅助控制循环执行break用来跳出最内层for或while循环,脱离该循环后程序从循环后代吗继续续执行  12345forsin"BIT":foriinrange(10):print(s,end="")ifs=="I":break  >>> BBBBBBBBBBITTTTTTTTTT其中,break语句跳出了最内层for循环,但仍然继续执行外层循环。每个break语句只有能力跳出当前层次循环循环保留字:break和continuecontinue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。对于while循环,继续求解循环条件。而对于for循环,程序流程接着遍历循环列表对比continue和break语句,如下  1234forsin"PYTHON":ifs=="T":continueprint(s,end="")    1234forsin"PYTHON":ifs=="T":breakprint(s,end="")  >>> PYHON>>> PY循环保留字:break和continuecontinue语句和break语句的区别是:continue语句只结束本次循环,而不终止整个循环的执行。break语句则是结束整个循环过程,不再判断执行循环的条件是否成立  1234forsin"PYTHON":ifs=="T":continueprint(s,end="")    1234forsin"PYTHON":ifs=="T":breakprint(s,end="")  >>> PYHON>>> PY循环保留字:break和continuefor循环和while循环中都存在一个else扩展用法。else中的语句块只在一种条件下执行,即for循环正常遍历了所有内容没有因为break或return而退出。continue保留字对else没有影响。看下面两个例子  123456forsin"PYTHON":ifs=="T":continueprint(s,end="")else:print("正常退出")    123456forsin"PYTHON":ifs=="T":breakprint(s,end="")else:print("正常退出")  >>> PYHON正常退出>>> PYrandom库的使用random库概述随机数在计算机应用中十分常见,Python内置的random库主要用于产生各种分布的伪随机数序列。random库采用梅森旋转算法(Mersennetwister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 应用。使用random库主要目的是生成随机数,因此,读者只需要查阅该库的随机数生成函数,找到符合使用场景的函数使用即可。这个库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展而来。random库解析函数描述seed(a=None)初始化随机数种子,默认值为当前系统时间random()生成一个[0.0,1.0)之间的随机小数randint(a,b)生成一个[a,b]之间的整数getrandbits(k)生成一个k比特长度的随机整数randrange(start,stop[,step])生成一个[start,stop)之间以step为步数的随机整数uniform(a,b)生成一个[a,b]之间的随机小数choice(seq)从序列类型(例如:列表)中随机返回一个元素shuffle(seq)将序列类型中元素随机排列,返回打乱后的序列sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回random库解析对random库的引用方法与math库一样,采用下面两种方式实现:importrandom或fromrandomimport*>>>fromrandomimport*>>>random()0.2922089114412476>>>uniform(1,10)1.5913082783598524>>>uniform(1,20)7>>>randrange(0,100,4)#从0开始到100以4递增的元素中随机返回96>>>choice(range(100))97>>>ls=list(range(10))>>>print(ls)[0,1,2,3,4,5,6,7,8,9]>>>shuffle(ls)>>>print(ls)[5,8,4,7,6,9,3,0,2,10,1,2,3,4,5,6,7,8,9]random库解析生成随机数之前可以通过seed()函数指定随机数种子,随机种子一般是一个整数,只要种子相同,每次生成的随机数序列也相同。这种情况便于测试和同步数据>>>seed(125)#随机种子赋值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'5.10.3'>>>seed(125)#再次给随机种子赋值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'π的计算π的计算π(圆周率)是一个无理数,即无限不循环小数。精确求解圆周率π是几何学、物理学和很多工程学科的关键。对π的精确求解曾经是数学历史上一直难以解决的问题之一,因为π无法用任何精确公式表示,在电子计算机出现以前,π只能通过一些近似公式的求解得到,直到1948年,人类才以人工计算方式得到π的808位精确小数。π的计算随着计算机的出现,数学家找到了另类求解π的另类方法:蒙特卡罗(MonteCarlo)方法,又称随机抽样或统计试验方法。当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。π的计算应用蒙特卡罗方法求解π的基本步骤如下:随机向单位正方形和圆结构,抛洒大量“飞镖”点计算每个点到圆心的距离从而判断该点在圆内或者圆外用圆内的点数除以总点数就是π/4值。随机点数量越大,越充分覆盖整个图形,计算得到的π值越精确。实际上,这个方法的思想是利用离散点值表示图形的面积,通过面积比例来求解π值。π的计算计算π使用的正方形和圆结构计算π使用的1/4区域和抛点过程π的计算实例代码6.1e6.1CalPi.py   123456789101112131415#e6.1CalPi.pyfromrandomimportrandomfrommathimportsqrtfromtimeimportclockDARTS=10000hits=0.0clock()foriinrange(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1pi=4*(hits/DARTS)print("Pi值是{}.".format(pi))print("运行时间是:{:5.5}s".format(clock()))  >>> Pi值是3.144.运行时间是:0.016477sπ的计算DARTSπ运行时间2103.1093750.011s2113.1386710.012s2123.1503900.014s2133.1435540.018s2143.1413570.030s2153.1478270.049s2163.1419670.116s2183.1445770.363s2203.14266967771.255s2253.141697883640.13s不同抛点数产生的精度和运行时间异常处理机制异常处理:try-except语句  12num=eval(input("请输入一个整数:"))print(num**2)  观察下面这段小程序:当用户输入的不是数字呢?>>> 请输入一个整数:10010000>>> 请输入一个整数:NOTraceback(mostrecentcalllast):File"D:/PythonPL/echoInt.py",line1,in<module>num=eval(input("请输入一个整数:"))File"<string>",line1,in<module>NameError:name'No'isnotdefined异常处理:try-except语句(接管错误)Python解释器返回了异常信息,同时程序退出异常处理:try-except语句Python异常信息中最重要的部分是异常类型,它表明了发生异常的原因,也是程序处理异常的依据。Python使用try-except语句实现异常处理,基本的语法格式如下:try:<语句块1>except<异常类型>:<语句块2>异常处理:try-except语句  12try:num=eval(input("请输入一个整数:"))print(num**2)except:print("输入错误,请输入一个整数!")  该程序执行效果如下:>>> 请输入一个整数:NO输入错误,请输入一个整数!异常的高级用法try-except语句可以支持多个except语句,语法格式如下:try:<语句块1>except<异常类型1>:<语句块2>….except<异常类型N>:<语句块N+1>except:<语句块N+2>异常的高级用法最后一个except语句没有指定任何类型,表示它对应的语句块可以处理所有其他异常。这个过程与if-elif-else语句类似,是分支结构的一种表达方式,一段代码如下  12345678try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"idx=eval(input("请输入一个整数:"))print(alp[idx])exceptNameError:print("输入错误,请输入一个整数!")except:print("其他错误")  异常的高级用法该程序将用户输入的数字作为索引从字符串alp中返回一个字符,当用户输入非整数字符时,exceptNameError异常被捕获到,提示升用户输入类型错误,当用户输入数字不在01到256之间时,异常被except捕获,程序打印其他错误信息,执行过程和结果如下:>>> 请输入一个整数:NO输入错误,请输入一个整数!>>> 请输入一个整数:100其他错误异常的高级用法除了try和except保留字外,异常语句还可以与else和finally保留字配合使用,语法格式如下:try:<语句块1>except<异常类型1>:<语句块2>else:<语句块3>finally:<语句块4> 异常的高级用法异常的高级用法采用else和finally修改代码如下:  12345678910try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"idx=eval(input("请输入一个整数:"))print(alp[idx])exceptNameError:print("输入错误,请输入一个整数!")else:print("没有发生异常")finally:print("程序执行完毕,不知道是否发生了异常")  执行过程和结果如下:>>> 请输入一个整数:5F没有发生异常程序执行完毕,不知道是否发生了异常>>> 请输入一个整数:NO输入错误,请输入一个整数!程序执行完毕,不知道是否发生了异常演讲完毕,谢谢观看!
本文档为【python程序的控制结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
言言无悔一生
暂无简介~
格式:ppt
大小:809KB
软件:PowerPoint
页数:65
分类:
上传时间:2022-01-21
浏览量:0