收藏 分销(赏)

Python电子教案4-2程序的控制结构.pptx

上传人:丰**** 文档编号:14221508 上传时间:2026-07-20 格式:PPTX 页数:48 大小:1.23MB 下载积分:8 金币
下载 相关
Python电子教案4-2程序的控制结构.pptx_第1页
第1页 / 共48页
Python电子教案4-2程序的控制结构.pptx_第2页
第2页 / 共48页


点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第,4,章,程序控制结构,第1页,程序循环结构,第2页,依据循环执行次数确实定性,分为确定次数循环和非确定次数循环,确定次数循环指循环体对循环次数有明确定义,这类循环在,Python,中被称为,“,遍历循环,”,,其中,循环次数采取遍历结构中元素个数来表达,详细采取,for,语句实现。,非确定次数循环指程序不确定循环体可能执行次数,而经过条件判断是否继续执行循环体,,Python,提供了依据判断条件执行程序无限循环,详细采取,while,语句实现。,程序循环结构,第3页,Python,经过保留字,for,实现,“,遍历循环,”,,基本使用方法以下:,for in :,之所以称为,“,遍历循环,”,,是因为,for,语句循环执行次数是依据遍历结构中元素个数确定。遍历循环能够了解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取元素执行一次语句块。,遍历循环,:for,语句,第4页,遍历结构能够是字符串、文件、组合数据类型或,range(),函数,惯用使用方式以下,循环,N,次,for i in range(N):,遍历文件fi每一行,for line in fi:,遍历字符串,s,for c in s:,遍历循环,:for,语句,第5页,遍历循环还有一个扩展模式,使用方法以下:,for in :,else:,遍历循环,:for,语句,第6页,在这种扩展模式中,当,for,循环正常执行之后,程序会继续执行,else,语句中内容。,else,语句只在循环正常执行之后才执行,所以,能够在,中放置判断循环执行情况语句。,这里先给一个小例子:,遍历循环,:for,语句,第7页,很多应用极难在执行之初就有确定遍历结构,这需要编程语言提供依据条件进行循环语法,称为无限循环,又称条件循环。,无限循环一直保持循环操作直到特定条件被满足才结束,不需要提前知道循环次数。,无限循环,:while,语句,第8页,Python,经过保留字,while,实现无限循环,基本使用方法以下:,while :,其中,与,if,语句中判断条件一样,结果为,True,和,False,。,无限循环,:while,语句,第9页,在这种扩展模式中,当,while,循环正常执行之后,程序会继续执行,else,语句中内容。,else,语句只在循环正常执行之后才执行,所以,能够在,中放置判断循环执行情况语句,比如:,无限循环,:while,语句,第10页,程序执行后效果以下:,假如经过,while,实现一个计数循环,需要在循环之前对计数器,idx,进行初始化,并在每次循环中对计数器,idx,进行累加,如上述代码第,4,行。相比,for,循环,循环变量逐一取自遍历结构,不需要程序维护计数器,无限循环,:while,语句,第11页,循环结构有两个辅助保留字:,break,和,continue,,它们用来辅助控制循环执行。,break,用来跳出最内层,for,或,while,循环,脱离该循环后续执行,比如,循环境保护留字,:break,和,continue,第12页,其中,,break,语句跳出了最内层,for,循环,但依然继续执行外层循环。每个,break,语句只有能力跳出当前层次循环。,continue,用来结束当前当次循环,即跳出循环体中下面还未执行语句,但不跳出当前循环。对于,while,循环,继续求解循环条件。而对于,for,循环,程序流程接着遍历循环列表。,循环境保护留字,:break,和,continue,第13页,对比,continue,和,break,语句,以下:,循环境保护留字,:break,和,continue,两个程序执行后效果分别为,PYHON PY,第14页,random,库使用,第15页,随机数在计算机应用中十分常见,Python,内置,random,库主要用于产生各种分布伪随机数序列,random,库采取梅森旋转算法(,Mersenne twister,)生成伪随机数序列,可用于除随机性要求更高加解密算法外大多数工程应用。,random,库概述,第16页,使用,random,库主要目标是生成随机数,所以,读者只需要查阅该库随机数生成函数,找到符合使用场景函数使用即可。这个库提供了不一样类型随机数函数,全部函数都是基于最基本,random.random(),函数扩展而来。,random,库概述,第17页,random,库解析,random,库惯用,9,个随机数生成函数,函数,描述,函数,seed(a=None),初始化随机数种子,默认值为当前系统时间,seed(a=None),random(),生成一个0.0,1.0)之间随机小数,random(),randint(a,b),生成一个a,b之间整数,randint(a,b),getrandbits(k),生成一个k比专长度随机整数,getrandbits(k),randrange(start,stop,step),生成一个start,stop)之间以step为步数随机整数,randrange(start,stop,step),uniform(a,b),生成一个a,b之间随机小数,uniform(a,b),choice(seq),从序列类型(比如:列表)中随机返回一个元素,choice(seq),shuffle(seq),将序列类型中元素随机排列,返回打乱后序列,shuffle(seq),sample(pop,k),从,pop,类型中随机选取,k,个元素,以列表类型返回,sample(pop,k),第18页,对,random,库引用方法与,math,库一样,可采取下面两种方式实现,import random,或,from random import*,使用,random,库一些例子以下,请读者注意,这些语句每次执行后结果不一定一样:,random,库解析,第19页,random,库解析,第20页,生成随机数之前能够经过,seed(),函数指定随机数种子,随机种子普通是一个整数,只要种子相同,每次生成随机数序列也相同。这种情况便于测试和同时数据,比如:,random,库解析,第21页,计算,第22页,计算,第23页,伴随计算机出现,数学家找到了另类求解,方法:蒙特卡罗(,Monte Carlo,)方法,又称随机抽样或统计试验方法。,当所要求解问题是某种事件出现概率,或者是某个随机变量期望值时,它们能够经过某种,“,试验,”,方法,得到这种事件出现频率,或者这个随机变数平均值,并用它们作为问题解。这就是蒙特卡罗方法基本思想。,计算,第24页,应用蒙特卡罗方法求解,基本步骤以下:随机向单位正方形和圆结构,如图,4.10,所表示,抛洒大量,“,飞镖,”,点,计算每个点到圆心距离从而判断该点在圆内或者圆外,用圆内点数除以总点数就是,/4,值,计算,第25页,为了简化计算,普通利用图形,1/4,求解,值,如图,4.11,所表示。该问题,IPO,表示以下:,输入:抛点数,处理:计算每个点到圆心距离,统计在圆内点数量,输出:,值,计算,第26页,计算,第27页,上述代码中,,random(),函数随机返回一个在,0,1),之间浮点数,用两个随机数给出随机抛点,(x,y),坐标。,sqrt(),函数来自于数学库,math,,用来求解输入数据平方根。第一次调用,clock(),函数开启一个新计时器,第二次调动,clock(),函数返回开启计时器后时间。,计算,第28页,代码中,DARTS,是一个常量,初始设定这个抛点数为,1000,。该程序运行结果以下:,Pi,值是,3.144.,运行时间是,:0.016477s,计算得到,值为,3.144,,与大家熟知,3.1415,相差较远。原因是,DARTS,点数量较少,无法更准确刻画面积百分比关系。,计算,第29页,表,4.4,列出了不一样,DARTS,值情况下该程序运行情况,,,能够看到,伴随,DARTS,数量增加,在,2,20,数量级上,,值就相对准确了。,DARTS,运行时间,2,10,3.109375,0.011s,2,11,3.138671,0.012s,2,12,3.150390,0.014s,2,13,3.143554,0.018s,2,14,3.141357,0.030s,2,15,3.147827,0.049s,2,16,3.141967,0.116s,2,18,3.144577,0.363s,2,20,3.1426696777,1.255s,计算,第30页,异常处理机制,第31页,观察下面这段小程序,num=eval(input(,请输入一个整数,:),print(num*2),当用户输入数字时,程序正常执行,假如用户输入不是数字呢?,异常处理,:try-except,语句,第32页,异常处理,:try-except,语句,第33页,能够看到,,Python,解释器返回了异常信息,同时程序退出,图,4.12,详细说明了这个异常信息中各部分含义。,异常处理,:try-except,语句,第34页,Python,异常信息中最主要部分是异常类型,它表明了发生异常原因,也是程序处理异常依据。,Python,使用,try-except,语句实现异常处理,基本语法格式以下:,try:,except:,异常处理,:try-except,语句,第35页,语句块,1,是正常执行程序内容,当发生异常时执行,except,保留字后面语句块,为这个小例子增加异常处理,代码以下:,异常处理,:try-except,语句,第36页,try-except,语句能够支持多个,except,语句,语法格式以下:,try:,except:,.,except:,except:,异常高级使用方法,第37页,其中,第,1,到第,N,个,except,语句后面都指定了异常类型,说明这些,except,所包含语句块只处理这些类型异常。最终一个,except,语句没有指定任何类型,表示它对应语句块能够处理全部其它异常。这个过程与,if-elif-else,语句类似,是分支结构一个表示方式,一段代码以下。,异常高级使用方法,第38页,异常高级使用方法,第39页,该程序将用户输入数字作为索引从字符串,alp,中返回一个字符,当用户输入非整数字符时,,except NameError,异常被捕捉到,提升用户输入类型错误,当用户输入数字不在,1,到,26,之间时,异常被,except,捕捉,程序打印其它错误信息,执行过程和结果以下:,异常高级使用方法,第40页,除了,try,和,except,保留字外,异常语句还能够与,else,和,finally,保留字配合使用,语法格式以下:,try:,except:,else:,finally:,异常高级使用方法,第41页,此处,else,语句与,for,循环和,while,循环中,else,一样,当,try,中语句块,1,正常执行结束且没有发生异常时,,else,中语句块,3,执行,能够看作是对,try,语句块正常执行后一个追加处理。,finally,语句块则不一样,不论,try,中语句块,1,是否发生异常,语句块,4,都会执行,能够将程序执行语句块,1,一些收尾工作放在这里,比如关闭打开文件等。,异常高级使用方法,第42页,采取这些保留子异常处理控制流过程如图,4.13,所表示,异常高级使用方法,第43页,采取,else,和,finally,修改代码以下,异常高级使用方法,第44页,执行过程和结果以下:,异常高级使用方法,第45页,Python,能识别很各种异常类型,但不提议读者编写程序时依赖,try-except,这种异常处理机制。,try-except,异常普通只用来检测极少发生情况,比如:用户输入合规性或文件打开是否成功等。对于本节小例子中索引字符串超出范围情况应该尽可能在程序中采取,if,语句直接判断,尽可能防止经过异常处理来应对这种可能发生“错误”,异常高级使用方法,第46页,对于商业应用软件产品,稳定性和可靠性是最主要衡量指标之一。即使这类软件产品,也不会滥用,try-except,类型语句。因为采取,try-except,语句会影响代码可读性,增加代码维护难度,所以,普通只在关键地方采取,try-except,类型语句处理可能发生异常。,没看懂,到底该什么时候该使用异常语句呢?,程序员都是对它又爱又恨,其实,想用就用吧,用户体验好才是王道!,异常高级使用方法,第47页,本章主要讲解程序基本结构,包含分支结构和循环结构,介绍身体质量指数,BMI,计算,用实例说明分支结构使用。本章同时介绍了一个惯用标准库,random,库,利用它实现了蒙特卡罗方法求解,过程。最终介绍了程序异常处理操作。,本章小结,第48页,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服