大学计算与人工智能 课件第4章Python程序设计进阶_第1页
大学计算与人工智能 课件第4章Python程序设计进阶_第2页
大学计算与人工智能 课件第4章Python程序设计进阶_第3页
大学计算与人工智能 课件第4章Python程序设计进阶_第4页
大学计算与人工智能 课件第4章Python程序设计进阶_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

大学计算与人工智能(第4章Python程序设计进阶)选讲内容本章目录本章选讲内容,学生可以通过教材学习或网络学习。4.1面向对象程序设计4.2时间模块与随机数模块4.3os模块和sys模块4.4NumPy模块和Panda模块4.5Turtle模块4.6matplotlib模块4.7Python对文档的操作

2学习目标1) 理解面向对象程序设计基本思想和在Python中的实施方法2) 理解Python的时间模块与随机数模块的作用,能够调用相关模块进行程序设计。3) 理解Python的os模块和sys模块的作用,能够调用相关模块进行程序设计。4) 理解Python的NumPy模块和Panda模块

的作用,能够调用相关模块进行程序设计。5) 理解Python的Turtle模块作用,能够基于turtle模块进行分形图绘制。6) 理解Python的matplotlib模块作用,能够基于matplotlib模块绘制各类统计图。7) 了解Python的文档操作功能,能够使用相关模块对Word、Excel、XML和SQLite进行自动化操作。

34.1面向对象程序设计由于大部分读者阅读本书之前没有接触过面向对象的编程语言,所以,本章首先介绍面向对象语言的一些基本特征,以便在头脑里头形成面向对象的基本概念,以提升利用Python语言进行高级编程的效率。3.1.1面向对象程序设计的基本思想采用面向过程(即以过程为中心)的编程思想,其优点是程序设计步骤清晰,流程明确,便于分析,但代码重用性低,扩展能力差,后期维护难度大,因此出现了面向对象的程序设计思想。

44.1.1面向对象程序设计的基本思想在使用面向对象的思想分析问题时,有两个关键概念:类和对象。类(class)是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象(object)是通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和一系列方法。方法(method)是类中定义的执行某种功能的函数。事实上,构造类的过程中,就是对一系列事物进行抽象、封装的过程。所谓抽象,就是针对一系列的事物,根据其共有的特点,归结为一类,它们拥有若干共同的属性。所谓封装,就是针对某类事物,构造若干个通用的方法。对于该类的使用者来说,该方法内部的实现细节,其实是没有必要去深入考究的。用户只需要知道,该类有哪些方法可以使用,并分别能达到什么效果,然后直接去使用就好。

54.1.2Python中的面向对象类变量:在Python中,定义在某个类内部的变量,称之为类变量。注意,类变量的外层就是类,如果一个变量是在类的某个方法内部被定义,那么,它并不是一个类变量。类变量通常不作为实例变量使用。实例化:创建一个类的实例,即类的具体对象。局部变量:定义在方法中的变量,只作用于当前实例的类。实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部、类的其他成员方法之外声明。数据成员:类变量或者实例变量,用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

6创建类在python中,通过class关键字来创建一个新类,class之后为类的名称并以冒号结尾。classClassName:'类的帮助信息'#类文档字符串

class_suite

#类体类的帮助信息可以通过ClassName.__doc__查看,class_suite由类成员,方法,数据属性组成。

7创建实例对象对类进行实例化,C++等编程语言中一般使用关键字new,但在Python语言中,并没有new这个关键字,类的实例化是通过类似函数调用方式来实现的。例如,下面的Python程序使用类的名称Employee来实例化,并通过__init__方法接收参数。具体程序如下:

8#创建Employee类的第一个对象emp1=Employee("张三",2600)#创建Employee类的第二个对象emp2=Employee("李四",5200)访问对象的属性通过类似函数调用方式来实现对象实例后,可以通过访问对象属性的方法来验证实例化是否成功和正确。Python有两种方法可以访问对象的属性。一种方法是使用对象名称后跟点号“.”再跟属性名的方法。例如,,emp1.salary和emp1.empCount。另一种是调用类中定义的方法来访问,例如,emp1.displayEmployee()。修改和删除对象的属性Python可以通过给对象的属性赋值来修改类的属性值,并可以使用del操作来删除属性的值。例如,我们可以在前面的程序之后,增加如下语句来进行测试。

94.2时间模块与随机数模块在Python编程语言中,使用频率比较高的模块是时间模块和随机数生成模块。时间模块可以用来测试程序运算时间,比较不同方法的执行效能;随机数生成模块能够在科研过程中生成测试数据、在密码算法中生成密钥等。三种典型的时间模块time、datatime和calendar一种随机数模块random。

104.3os模块和sys模块Python语言的os模块和sys模块提供了与计算机的操作系统的多种访问接口,方便用户编程时进行调用。Python的os模块提供了操作系统的多种接口,这些接口主要是用来操作文件和目录。Python中所有依赖于操作系统的内置模块统一设计方式为:对于不同操作系统可用的相同功能使用相同的接口,这样大大增加了代码的可移植性;当然,通过os模块操作某一系统的扩展功能也是可以的,但这样做会损害代码的可移植性。Python的sys模块主要负责与Python解释器进行交互,该模块提供了一系列用于控制Python运行环境的函数和变量。在Python中,可以使用dir(sys)函数查看sys模块包含的内容。请学生通过网络学习。

114.4NumPy模块和Panda模块NumPy(NumericalPython)是一个开源的Python科学计算扩展库,主要用来处理任意维度数组与矩阵。通常对于相同的计算任务,使用NumPy要比直接使用Python基本数据结构要简单、高效的多。Pandas是基于NumPy开发的,它提供了快速、灵活、明确的数据结构,旨在简单直观地处理数据。使用“pipinstallnumpy”命令即可安装NumPy库;使用“pipinstallpanda”命令即可安装Panda库。请学生通过网络学习。

124.5Turtle模块turtle库是Python的标准库之一,属于入门级的图形绘制函数库。其绘制原理为:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。下面首先介绍turtle库的主要函数,然后以分形图的绘制为例,说明turtle库实现数据可视化的方法。

13(2)turtle库的坐标设置和方向控制函数turtle.position()函数:获取当前箭头的位置,初始位置为(0,0)。turtle.home()函数:返回原点,并且箭头方向为0度。turtle.setpos(x,y)或turtle.goto(x,y)或turtle.setposition(x,y)函数:将海龟直接去到某个坐标(x,y)。turtle.setx(x)函数:设置x坐标。turtle.sety(y)函数:设置y坐标。Turtle.setheading(x)或者turtle.seth(x)函数:设置角度x。turtle.heading():获取当前箭头的角度,一开始为0度。(3)Turtle库的绘图控制turtle.forward(x)或者turtle.fd(x)函数:沿着箭头方向前进x个点的距离。turtle.backward(x)或者turtle.bk(x)函数:沿着箭头反方向前进x点的距离。turtle.right(x)或者turtle.rt(x)函数:箭头方向向右旋转x度。turtle.left(x)或者turtle.lt(x)函数:箭头方向向左旋转x度。turtle.circle(r,angle)函数:绘制半径为r圆形。turtle.penup()函数:表示抬起画笔,海龟在飞行,可以简写成turtle.pu()。turtle.pendown()函数:表示画笔落下,海龟在爬行,可以简写成turtle.pd()。turttle.pensize(width)或者turtle.width(width)函数:设置画笔的宽度。turtle.pencolor(color)函数:设置画笔颜色。4.5Turtle模块【示例1】科克曲线的绘制科克曲线(Kochcurve)是一种典型的分形曲线,是1904年构造出来的,最早出现在科克的论文《关于一条连续而无切线,可由初等几何构作的曲线》中。完整的Koch曲线像雪花。它的定义如下,给定线段AB,Coch曲线可以由以下步骤生成:步骤1:将线段分成三等份(AC,CD,DB);步骤2:以CD为底向外(内外随意)画一个等边三角形DMC;步骤3:将线段CD移去;步骤4:分别对AC,CM,MD,DB重复步骤1~3步。通过观察,可能注意到一个有趣的事实:整个线条的长度每一次都变成了原来的3/4。如果最初的线段长为一个单位,那么第一次操作后总长度变成了4/3,第二次操作后总长增加到16/9,第n次操作后长度为(4/3)^n。毫无疑问,操作无限进行下去,这条曲线将达到无限长。难以置信的是这条无限长的曲线却始终只占用相同大小的面积。下面给出是Coch曲线的Python程序代码。

144.5Turtle模块该程序运行后得到的0、1、2阶Coch曲线如图a所示。通过修改程序中koch(300,?)函数中的阶数,可得到图b所示的3、4、5阶的Coch曲线。图c表示的是一个3阶和两个2阶相连接后形成的Coch曲线,请读者自行编制程序予以实现。

154.6matplotlib模块使用turtle图形库进行图形绘制,可以通过设置绘制速度,给用户以动态绘制的感觉。但需要快速获得图像效果时,使用matplotlib图形库是一种更好的选择。matplotlib图形库的设计借鉴了商业化程序语言MATLAB的功能,因此名称中还有matlab的前三个字符。学生网络学习

164.7Python对文档的操作利用Python程序,可以对各类文档进行操作,包括文字处理系统Word、电子表格系统Excel、脚本系统Xml和数据库系统Sql等的创建、写入、读出和修改等操作。学生网络学习。

174.7本章小结本章

温馨提示

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

评论

0/150

提交评论