




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.1,7段数字管绘制,数字管是价格低廉、易于使用的发光电子设备,在价格低廉的电子产品中,7段使用最多。7段数码管(seven-segmentindicator)由7段数码管(每个段不亮或不亮)组成,增强的7段数码管还包含小数点位置,如图5.4所示。7段数码管绘制,7段数码管绘制,7段数码管可以形成27=128个不同的状态,其中一些可以显示易于理解的数字或字母的含义,因此被广泛使用。图5.5显示了十六进制到十六个字符的7段数码管表达。绘制7段数码管,本节继续示例2和2.4的内容,并通过一些turtle库函数绘制7段数码管形式的日期信息。此问题的IPO说明如下:输入:当前日期的数字格式处理:根据每个数字,7段数字管表示输出。当前日期的7段数字管道是用7段数字管道绘制的,每个0到9的数字都是用相同的7段数字管道绘制的,因此设计函数允许重复使用数字绘制过程。进一步来说,每个7段数字管道包含7个数字管道样式,不仅数字管道位置不同,还可以创建相同的绘图样式,或通过函数重复使用单个数字段绘制过程。在这里,程序的所有代码都首先提供。示例代码7.1如下所示:7段数字管道定义了drawDigit()函数,该函数根据图5.6所示输入的数字d绘制与7段数字管道相结合的7段数字管道。绘制7段数码管,从7段数码管中间左侧开始依次“绘制”所有7段数码管,无论是否绘制了每个段号。指定数字d的if.else.使用语句绘制的数字段。Drawline (true) if din 2,3,4,5,6,8,9 else drawline (false),用7段数字管道绘制的7段代码管道在8运动示例中为单行if.使用else语句。此语句通常用于if和else中只有一行的情况。8行代码含义是典型的if,如下所示.通过ifelse语句表示,您可以看到单行语句的实现方式可以更紧凑地表示。If din 2,3,4,5,6,8,93360 drawLine(True)else 3360 drawLine(False),绘制7段数字管道,8行代码根据输入数字确定是否绘制7段数字管材的中间线。调用绘图函数drawline()。参数分配true如果不需要绘制,则值为false。根据0-9的数字结构,必须为2,3,4,5,6,8,9绘制这些数字。否则,不需要绘制。要简化设计以冻结输出样式,请在不需要绘画的情况下抬起turtle画笔。DrawLine()函数根据输出参数的值(True或False)确定是否提起画笔。7.1实例代码定义drawDate()函数和main()函数,以绘制7段数字管,使代码模块化。DrawDate()函数将较长的数字分解为单个数字,然后通过进一步调用drawDigit()单独绘制每个数字。Main()函数封装开始表单大小、画笔宽度、系统时间等功能,而main()函数仅在提高代码可读性方面不反映单个功能。7段数码管绘制、实例代码7.1的操作效果、实例代码7.1仅提供最基本的7段数码管绘制程序,表明可以使用函数广泛地重复使用代码,以避免重复编写相同的功能。函数的优点也反映在代码修改中。你能画出更有趣的7段数字管吗?示例代码7.2显示了图5.8中的插图样式。读者将示例代码7.2与实例代码7.1进行比较,以更深入地认识函数的编程便利性。7段数字管绘制,实例代码7.2的操作效果,18、代码重用和模块化设计,程序由一系列代码组成,如果代码连续但没有组织,不仅不利于阅读和理解,而且难以升级和维护。因此,必须抽象代码,创建易于理解的结构。现代编程语言在代码级别使用与面向过程和面向对象编程思想相对应的函数和对象抽象。、重用和模块化,函数是程序的基本抽象方法,用于组织一系列代码以供其他程序使用。封装函数的直接优点是重复使用所有其他代码只需输入参数即可调用函数的代码,从而避免在调用的位置重复编写相同的功能代码。代码重用还提供了另一个优点,即更新函数功能时,所有调用的功能都将更新。重用和模块化,对象是程序的高级抽象方法,它将程序代码组织到更高级别的类中。对象包含特性对象特性的属性以及指示对象操作的方法。例如,汽车是颜色、轮胎数量和模型是表示汽车静态值的属性对象。向前、向后、转弯等是表示汽车行为和行为的方法。如果在编程中表示对象,则获取其属性并调用其方法。()。对象的方法具有程序功能,因此封装在函数形式中。重用和模块化,简单地说,对象是程序解决计算问题的高级抽象,它包含一组静态值(属性)和函数(方法)。从代码行数的角度来看,对象和函数都使用易于理解的抽象逻辑,但是对象可以组合更多的代码。因此,面向对象的编程更适合代码大小、交互逻辑复杂的程序、重用和模块化,面向流程的编程是基于流程描述的编程方法,在程序设计人员列出解决问题所需的步骤,然后使用函数逐步实现和使用这些步骤时,可以依次创建和调用函数或编写语句。面向过程的编程是通过步骤或子功能包重复使用代码和简化编程的基本自然编程方法。面向进程和面向对象的编程只有编程方法不同,抽象级别不同,所有面向对象的可编程功能都可以使用面向进程的方法完成。这两个功能在故障诊断中的优缺点、多路复用和模块化,并且在程序长度超过100个的情况下,如果不拆分模块,即使是最好的程序员也很难理解程序的含义。解决这个问题的最好方法是将程序分成小段,在每个阶段执行小功能。无论面向流程还是面向对象的编程,对功能模块进行程序划分,基于模块的设计程序称为“模块化设计”的常用方法。多路复用和模块化,模块化设计是指通过函数或对象的封装功能将程序划分为主程序、子程序和子程序之间的关系的表示。模块化设计是使用函数和对象设计程序的思维方式,以功能块为基本单位,通常有两个基本要求紧耦合。尽可能合理地分割功能块,功能块的内部耦合紧密。松散耦合:模块之间的关系尽可能简单,功能块之间的耦合度低。重用和模块化、实例代码2.1与实例代码2.3的比较、函数封装使drawSnake()函数封装功能易于理解,即使代码行数增加。观察实例代码7.1并使用函数封装后,程序的第一级不再直接读取语句,而是读取函数及其框架,如有必要,进一步了解函数内部语句。为了提高代码的可读性,为了实现多路复用和模块化,读者最好在实例代码7.1中将程序初始化或函数之间的溢出封装到main()函数中,以便所有代码都由函数组成,最后通过main()语句执行程序。函数和模块化设计使整个程序看起来更长,但添加了软件包代码,提供了模块化的层次结构,使程序易于阅读。多路复用和模块,28,函数的递归,函数封装在一个代码中,可以由另一个程序调用,当然也可以由函数内部代码调用。在此函数定义中调用函数本身的方法称为递归。一个人站在充满镜子的房间里的形象是递归的结果。递归在数学和计算机应用领域非常强大,可以非常简洁地解决重要的问题。,有一个经典递归例子,递归定义,数学上的阶乘。阶乘通常可以通过简单的循环累积来计算阶乘,以实现此程序。观察5!计算,去掉5,剩下计算4!宣传,n!=n(n-1)!即可从workspace页面中移除物件。递归定义,实际上,这种关系提供了另一种表达阶乘的方法。这个定义解释了0的阶乘被定义为1,其他数字的阶乘乘以这个数字小于1的阶乘。递归不是循环,因为递归每次都计算到0为止更小的阶乘!即可从workspace页面中移除物件。0!被称为递归基本案例的已知值。递归结束后,需要可以直接计算值的表达式。递归定义,继承的例子说明了递归的两个核心特征。(1)有一个或多个无需递归的基本示例,这是确定的表达式。(2)所有重复链都以一个或多个主实例结束。递归定义,微实例5.1:阶乘计算,递归使用方法,fact()函数在定义中引用自身以形成递归过程。无限制的递归会消耗所有计算资源,因此需要设计基础,以便递归按层返回。Fact()函数通过if语句提供n等于0时的基本示例。如果n=0,则fact()函数不再是递归的,如果n,则返回数字1!=0时,将递归返回n和n-1阶乘的乘积。代码7行通过ABS()和int()函数将用户输入转换为非负整数,程序输出如下:输入递归使用方法,整数33363603628800。输入整数递归遵循函数的语义,每次调用都会引发新函数的开始,这表明存在局部变量值的副本,包括函数的参数。图5.13显示了计算5!的递归调用过程,每次调用函数时,都会临时存储函数参数的副本,递归中的每个函数彼此之间没有影响。主实例结束函数运算并返回值后,每个函数按层次结束运算,并将计算结果返回给调用方。输出递归使用方法,递归使用方法,用户输入的字符串s的反转字符串。解决这个问题的基本思想是把字符串看作递归对象。长字符串由短字符串组成,每个字符串都是一个对象。将字符串视为第一个字符和剩馀字符串的两部分。将其馀字符串与第一个字符交换可以反转整个字符串,如以下代码所示:defreverse(s): return reverse(s13360)s0,微实例5.2:反转字符串,观察此函数的运行过程。S0是第一个字符,s1:是其馀字符串,如果将这些字符串反向连接,则会得到反向字符串。执行此程式会传回错误,指出reverse()函数无法执行由reverse()函数建立的递回,因为reverse()函数没有基本范例,递回层次的数目超过系统允许的最大递回深度。默认情况下,Python解释程序在递归调用到1000层时退出程序。重复深度旨在防止无限重复错误,当用户编写的正确重复程序需要1000个以上的层时,可以通过以下代码设置重复深度:递归使用方法;import syssys . setrecursionlimit(2000)# 2000是递归级别reverse()超出递归深度的新递归级别,因为没有设计基础实例。在字符串反转中,递归调用总是使用比以前短的字符串,因此可以将基本示例设计为字符串的最短形式,即空字符串。递归使用方法,示例5.2的完整代码和结果,微实例5.2的结果为:唐诗宋词。43,绘制coch曲线,coch曲线的基本概念和绘制方法如下:正整数n表示coch曲线的阶数,表示coch曲线生成过程中的作业数。科赫曲线初始化阶数为0,表示长度为l的线。对于直线L,它相等地分为三条线段,中间线段用边长为L/3的等边三角形的两条边替换,从而得到由四条线段组成的一阶科赫曲线。对每个线段重复进一步的相同操作将产生二次科赫曲线。如图5.14所示,重复n次,获得n次科赫曲线。绘制科赫曲线,绘制科赫曲线,科赫曲线属于分形几何分支,绘制过程反映递归思维,绘制过程如下:绘制coch曲线、绘制coch曲线、绘制n阶coch曲线等同于在画笔前进方向的0度、60度、-120度和60度处分别绘制n阶曲线。实例代码8.1中的main()函数设置了一些初始参数。要控制绘制coch曲线的速度,可以使用turtle.speed()函数增加或减少速度。科赫曲线在直线上开始绘制,从等边三角形开始,会更有趣。替换实例代码8.1中的main()函数,代码如下所示:给出初始图后,通过科赫曲线可以产生很多美丽的图,请读者探索和尝试。绘制科赫曲线,绘制科赫曲线,51、Python内置函数和Python解释程序提供了68个无需直接引用库的内置函数,如表5.4中所示。其中前36个已经出现在这本书上,需要读者掌握。Python内置函数、Python内置函数以及一些函数说明如下:尚未找到的其他函数将在下一节中介绍,并使用all()函数说明通常关联的数据类型。如果其中的每个元素都为True,则返回True;否则返回False。请记住,整数0、空字符串“”、空列表等将被视为False。与all()函数相反,如果组合的任何数据类型为True,则Any()函数返回True;如果所有元素为False,则返回False。Python内置函数,散列()函数返回可以计算散列的类型的散列值。Id()函数返回每个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江苏省扬州市中考语文试卷及答案
- 2025年仿制药一致性评价对药品生产设备更新的推动报告
- 元宇宙社交平台虚拟社交互动体验优化与用户粘性提升策略
- 国际教育咨询服务在中国的发展现状与竞争格局研究报告2025版
- 财富管理行业数字化转型:金融科技如何优化客户服务体验报告
- 科技与互联网融合下的互联网金融服务风险控制技术体系构建报告
- 深度解读2025年制造业数字化转型数据治理战略与实施
- 护理礼仪与人际沟通教学课件第九章护理工作中的人际沟通
- 核酸耗材运送管理制度
- 担保公司抵押物管理制度
- GB/T 42068-2022农村产权流转交易市场建设和管理规范
- GB/T 2833-1996陶管弯曲强度试验方法
- DB12T 1179-2023 泥态固化土道路填筑技术规程
- 第五课古典芭蕾(芭蕾舞鼎盛时期)
- 中小学生肥胖调查表
- 胃癌HER2判读及评分课件
- 学校机房网络规划与设计
- 中储粮警示教育心得体会三篇
- 船用空调电气控制系统简介课件
- 2009-2022历年河北省公安厅高速交警总队招聘考试真题含答案带详解2022-2023上岸资料汇编3
- 遥控器检验作业指导书
评论
0/150
提交评论