yhon电子教案程序的控制结构_第1页
yhon电子教案程序的控制结构_第2页
yhon电子教案程序的控制结构_第3页
yhon电子教案程序的控制结构_第4页
yhon电子教案程序的控制结构_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章

程序的控制结构程序的循环结构根据循环执行次数的确定性,分为确定次数循环和非确定次数循环确定次数循环指循环体对循环次数有明确的定义,这类循环在Python中被称为“遍历循环”,其中,循环次数采用遍历结构中元素个数来体现,具体采用for语句实现。非确定次数循环指程序不确定循环体可能的执行次数,而通过条件判断是否继续执行循环体,Python提供了根据判断条件执行程序的无限循环,具体采用while语句实现。程序的循环结构Python通过保留字for实现“遍历循环”,基本使用方法如下:for<循环变量>in<遍历结构>:<语句块>之所以称为“遍历循环”,是因为for语句的循环执行次数是根据遍历结构中元素个数确定的。遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。遍历循环:for语句遍历结构可以是字符串、文件、组合数据类型或range()函数,常用的使用方式如下遍历循环:for语句遍历循环还有一种扩展模式,使用方法如下:for<循环变量>in<遍历结构>:<语句块1>else:<语句块2>遍历循环:for语句在这种扩展模式中,当for循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行,因此,可以在<语句块2>中放置判断循环执行情况的语句。这里先给一个小例子:遍历循环:for语句很多应用很难在执行之初就有确定的遍历结构,这需要编程语言提供根据条件进行循环的语法,称为无限循环,又称条件循环。无限循环一直保持循环操作直到特定条件被满足才结束,不需要提前知道循环次数。无限循环:while语句Python通过保留字while实现无限循环,基本使用方法如下:while<条件>:<语句块>其中<条件>与if语句中的判断条件一样,结果为True和False。无限循环:while语句在这种扩展模式中,当while循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行,因此,可以在<语句块2>中放置判断循环执行情况的语句,例如:无限循环:while语句程序序执执行行后后的的效效果果如如下下::如果果通通过过while实现现一一个个计计数数循循环环,,需需要要在在循循环环之之前前对对计计数数器器idx进行行初初始始化化,,并并在在每每次次循循环环中中对对计计数数器器idx进行行累累加加,,如如上上述述代代码码第第4行。。相相比比for循环环,,循循环环变变量量逐逐一一取取自自遍遍历历结结构构,,不不需需要要程程序序维维护护计计数数器器无限限循循环环:while语句句循环环结结构构有有两两个个辅辅助助保保留留字字::break和continue,它它们们用用来来辅辅助助控控制制循循环环执执行行。。break用来来跳跳出出最最内内层层for或while循环环,,脱脱离离该该循循环环后后续续执执行行,,例例如如循环环保保留留字字:break和continue其中中,,break语句句跳跳出出了了最最内内层层for循环环,,但但仍仍然然继继续续执执行行外外层层循循环环。。每每个个break语句句只只有有能能力力跳跳出出当当前前层层次次循循环环。。continue用来来结结束束当当前前当当次次循循环环,,即即跳跳出出循循环环体体中中下下面面尚尚未未执执行行的的语语句句,,但但不不跳跳出出当当前前循循环环。。对对于于while循环环,,继继续续求求解解循循环环条条件件。。而而对对于于for循环环,,程程序序流流程程接接着着遍遍历历循循环环列列表表。。循环环保保留留字字:break和continue对比比continue和break语句句,,如如下下::循环环保保留留字字:break和continue两个个程程序序执执行行后后的的效效果果分分别别为为>>>>>>PYHONPYrandom库的的使使用用随机机数数在在计计算算机机应应用用中中十十分分常常见见Python内置置的的random库主主要要用用于于产产生生各各种种分分布布的的伪伪随随机机数数序序列列random库采采用用梅梅森森旋旋转转算算法法((Mersennetwister)生生成成伪伪随随机机数数序序列列,,可可用用于于除除随随机机性性要要求求更更高高的的加加解解密密算算法法外外的的大大多多数数工工程程应应用用。。random库概概述述使用用random库主主要要目目的的是是生生成成随随机机数数,,因因此此,,读读者者只只需需要要查查阅阅该该库库的的随随机机数数生生成成函函数数,,找找到到符符合合使使用用场场景景的的函函数数使使用用即即可可。。这这个个库库提提供供了了不不同同类类型型的的随随机机数数函函数数,,所所有有函函数数都都是是基基于于最最基基本本的的random.random()函数数扩扩展展而而来来。。random库概概述述random库解解析析random库常常用用的的9个随随机机数数生生成成函函数数对random库的引用用方法与与math库一样,,可采用用下面两两种方式式实现importrandom或fromrandomimport*使用random库的一些些例子如如下,请请读者注注意,这这些语句句每次执执行后的的结果不不一定一一样:random库解析random库解析生成随机机数之前前可以通通过seed()函数指定定随机数数种子,,随机种种子一般般是一个个整数,,只要种种子相同同,每次次生成的的随机数数序列也也相同。。这种情情况便于于测试和和同步数数据,例例如:random库解析π的计算π的计算随着计算算机的出出现,数数学家找找到了另另类求解解π的方法::蒙特卡卡罗(MonteCarlo)方法,,又称随随机抽样样或统计计试验方方法。当所要求求解的问问题是某某种事件件出现的的概率,,或者是是某个随随机变量量的期望望值时,,它们可可以通过过某种“试验”的方法,,得到这这种事件件出现的的频率,,或者这这个随机机变数的的平均值值,并用用它们作作为问题题的解。。这就是是蒙特卡卡罗方法法的基本本思想。。π的计算应用蒙特特卡罗方方法求解解π的基本步步骤如下下:随机机向单位位正方形形和圆结结构,如如图4.10所示,抛抛洒大量量“飞镖”点,计算算每个点点到圆心心的距离离从而判判断该点点在圆内内或者圆圆外,用用圆内的的点数除除以总点点数就是是π/4值π的计算为了简化化计算,,一般利利用图形形的1/4求解π值,如图图4.11所示。该该问题的的IPO表示如下下:输入:抛抛点数处理:计计算每个个点到圆圆心的距距离,统统计在圆圆内点的的数量输出:π值π的计算π的计算上述代码码中,random()函数随机机返回一一个在[0,1)之间的浮浮点数,,用两个个随机数数给出随随机抛点点(x,y)的坐标。。sqrt()函数来自自于数学学库math,用来求求解输入入数据的的平方根根。第一一次调用用clock()函数启动动一个新新的计时时器,第第二次调调动clock()函数返回回启动计计时器后后的时间间。π的计算代码中DARTS是一个常常量,初初始设定定这个抛抛点数为为1000。该程序序运行结结果如下下:>>>Pi值是3.144.运行时间间是:0.016477s计算得到到的π值为3.144,与大家家熟知的的3.1415相差较远远。原因因是DARTS点数量较较少,无无法更精精确刻画画面积的的比例关关系。π的计算表4.4列出了不不同DARTS值情况下下该程序序的运行行情况,可以看到到,随着着DARTS数量的增增加,在在220数量级上上,π的值就相相对准确确了。π的计算异常处理理机制观察下面面这段小小程序num=eval(input("请输入一一个整数数:"))print(num**2)当用户输输入数字字时,程程序正常常执行,,如果用用户输入入的不是是数字呢呢?异常处理理:try-except语句异常处理理:try-except语句可以看到到,Python解释器返返回了异异常信息息,同时时程序退退出,图图4.12具体说明明了这个个异常信信息中各各部分的的含义。。异常处理理:try-except语句Python异常信息息中最重重要的部部分是异异常类型型,它表表明了发发生异常常的原因因,也是是程序处处理异常常的依据据。Python使用try-except语句实现现异常处处理,基基本的语语法格式式如下::try:<语句块1>except<异常类型型>:<语句块2>异常处理:try-except语句语句块1是正常执行行的程序内内容,当发发生异常时时执行except保留字后面面的语句块块,为这个个小例子增增加异常处处理,代码码如下:异常处理:try-except语句try-except语句可以支支持多个except语句,语法法格式如下下:try:<语句块1>except<异常类型1>:<语句块2>….except<异常类型N>:<语句块N+1>except:<语句块N+2>异常的高级级用法其中,第1到第N个except语句后面都都指定了异异常类型,,说明这些些except所包含的语语句块只处处理这些类类型的异常常。最后一一个except语句没有指指定任何类类型,表示示它对应的的语句块可可以处理所所有其他异异常。这个个过程与if-elif-else语句类似,,是分支结结构的一种种表达方式式,一段代代码如下。。异常的高级级用法异常的高级级用法该程序将用用户输入的的数字作为为索引从字字符串alp中返回一个个字符,当当用户输入入非整数字字符时,exceptNameError异常被捕获获到,提升升用户输入入类型错误误,当用户户输入数字字不在1到26之间时,异异常被except捕获,程序序打印其他他错误信息息,执行过过程和结果果如下:异常的高级级用法除了try和except保留字外,,异常语句句还可以与与else和finally保留字配合合使用,语语法格式如如下:try:<语句块1>except<异常类型1>:<语句块2>else:<语句块3>finally:<语句块4>异常的高级级用法此处的else语句与for循环和while循环中的else一样,当try中语句块1正常执行结结束且没有有发生异常常时,else中语句块3执行,可以以看作是对对try语句块正常常执行后的的一种追加加处理。finally语句块则不不同,无论论try中语句块1是否发生异异常,语句句块4都会执行,,可以将程程序执行语语句块1的一些收尾尾工作放在在这里,例例如关闭打打开文件等等。异常的高级级用法采用这些保保留子的异异常处理控控制流过程程如图4.13所示异常的高级级用法采用else和finally修改代码如如下异常的高级级用法执行过程和和结果如下下:异常的高级级用法Python能识别很多多种异常类类型,但不不建议读者者编写程序序时依赖try-except这种异常处处理机制。。try-except异常一般只只用来检测测极少发生生的情况,,例如:用用户输入的的合规性或或文件打开开是否成功功等。对于于本节小例例子中索引引字符串超超过范围的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论