《大学计算机基础》课件+第3章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大学计算机基础北京航空航天大学计算机学院2课程目录第6章求解显示,交互(2学时)求解效率,优化和限制(4学时)第5章求解的工程思维,规范(2学时)第7章问题的描述,数据及数据结构(6学时)第3章计算机与计算思维(4学时)第1章第2章问题的抽象与建模(4学时)问题的求解,算法及实现(4学时)第4章3第3章问题的描述,数据及数据结构3.4程序控制结构3.3Python的基本构成及操作3.5函数、模块及文件3.6Python中类的定义3.7Python实现典型数据结构3.2数据与数据结构3.1问题的描述4本章重点了解问题描述的方法掌握“数据抽象”的方法掌握使用Python的基础操作,对象、类型、表达式、程序控制结构,如何构建较大规模的程序掌握如何在Python中定义“类”掌握典型数据结构的定义,抽象数据类型及实现方法53.1问题的描述3.1.1引例3.1.2编程语言3.1.3Python63.1.1引例如何计算平方根?从猜想g开始如果g*g足够接近x,则停止计算,g为x的平方根否则,创建一个新的猜想,(g+x/g)/2将新的猜想称为g,并重复整个过程,直到g*g足够接近x如何描述问题描述解决问题的要素输入输出简单计算过程控制流73.1.2编程语言1936年,AlanTuring描述了理想的计算模型编程语言要素一组编程结构原语Python原语:文字literal以及中缀运算符等语法哪些单词串可以构成句子4.9+4.9&4.94.9静态语义定义哪些句子具有含义4.9/‘xyz’语义定义句子的含义是什么8学习编程易犯的错误语法错误严谨的编程语言均会进行语法错误检查,如果含有任何语法错误,用户都无法执行程序静态语义错误在允许执行程序前需要进行很多静态语义检查。而C和Python,则仅是做少量的静态语义检查程序的执行并不是创建者的意图它可能崩溃,也就是停止运行,给出示意它可能继续运行,持续运行而不停止它也可能完成运行,产生不正确的结果,甚至有可能是看似正确的结果9编程语言分类低级语言与高级语言前者采用指令以及机器级别的数据对象进行编程,后者采用语言设计者提供的抽象操作进行编程通用编程语言与特定领域编程语言看编程语言的原语操作是广泛可被使用还是面向特定的领域解释型编程语言与编译型编程语言前者程序指令序列直接执行,而后者首先转化为机器级原语操作10Python语言特点通用的编程语言,可有效构建绝大多数程序,而无需对计算机硬件进行直接的访问较弱的静态语义检查功能,对于高可靠性限制要求的程序、由较多人员长期维护和构建的程序而言,它并不是最佳的选择解释型语言,对于编程新生而言Python提供的实时反馈非常有帮助,同时Python提供大量库以及扩展功能,便于使用11123.2数据与数据结构3.2.1数据3.2.2数据结构3.2.3数据抽象程序的构成用于描述问题解决方案包含如下两个方面内容表征问题实例的数据产生预期结果所必须的一组施加于数据之上的计算过编程语言需要提供数据类型控制结构允许算法的步骤能够以更为方便的方式进行表达顺序结构、选择结构以及迭代控制结构133.2.1数据计算机所处理的信息在客观世界中并不孤立存在,如何在计算机中存储这些信息二进制为了使得这些序列有含义,我们使用数据类型进行刻画采用何种方法表征数据间的结构关系,从而通过应用相应的办法进行数据的处理加工,以解决实际问题数据类型提供算法开发时的基石143.2.2数据结构问题要素并非独立存在,之间存在着某种联系,这种联系称为“结构”,也称为数据的“逻辑结构”153.2.3抽象利用计算机解决实际问题的重要过程之一便是“抽象”抽象允许我们看待问题以及提出解决方案的角度分为逻辑视图和物理视图使用计算机撰写文档,收发邮件,上网、玩游戏,听音乐,存储照片操作系统是如何工作的,网络协议是如何配置的,如何编写代码实现功用用户无需知道细节,只需要明确接口如何工作;而“接口”便是用户与底层复杂实现进行交互的方法16数据抽象抽象数据类型(abstractdatatype)如何看待数据以及允许施加于数据之上操作的逻辑描述该描述并不关心如何实现这些数据操作仅关心数据的表示,而不是如何实现数据的操作通过抽象,进行数据的封装,即将实现的细节进行封装,对于用户隐藏这些细节数据结构则提供了抽象数据类型的实现,即如何使用程序结构以及元数据类型提供数据的物理视图17183.3Python的基本构成及操作3.3.1对象、表达式以及数字类型3.3.2对变量进行赋值3.3.3TypeStr3.3.4结构化类型3.3.5输入Input3.3.6IDLE3.3.1对象、表达式以及数字类型对象是Python程序操作的核心内容,每个对象具有类型的定义,用于说明程序可用该类型对象完成的工作类型可以是标量以及非标量标量对象可以视为是语言的原子非标量对象,如字符串,有内在的结构19标量对象Python含有四类标量对象:int用于代表整数型,如16,-5,1024;float用于代表实数,如16.0,-5.25,1024E3(代表1024*103);bool类型用于代表布尔值True以及False;None为单一值类型20表达式对象以及操作符可以组合形成表达式如表达式4+5指示int型对象9而表达式4.00+5.00则指示float型对象9.00操作符==用于比较两个表达式是否相等,操作符!=用于比较两个表达式是否不等21找出对象的类型22操作规则对于i+j,i-j,i*j如果i和j的类型均为int,则结果类型同样为int如果i和j之一为float,则结果为float型i//j,表示整数除法9//3为int3,9//2为int4.返回商数,忽略小数部分i/j如果操作数均为int,则结果同样为int,否则结果为floati%j,为inti被intj除的余数i**j,i的j次方如果操作数均为int,则结果同样为int,否则结果为float比较符,=,,=含义为大于,大于等于,小于,小于等于23数学比较符的优先级x+y*3首先计算y*3,之后加上3通过括号可以改变优先顺序(x+y)*3,将首先计算x+y,结果值再乘以324基于bool类型值的操作符xandy,仅当x和y均为True时为Truexory,x,y当中至少一个为True时为Truenotx,仅当x为False时为True253.3.2对变量进行赋值变量提供将名(name)与对象(object)关联的方式pi=3.14159radius=10.5circumference=2*pi*radiusradius=12.626恰当使用变量名以增强程序可读性pi=3.14159diameter=10.5circumference=2*pi*radiusx=3.14159y=10.5z=2*pi*y27注释#computethecircumferenceofcircleusingradiuspi=3.14159radius=10.5circumference=2*pi*radius28赋值语句293.3.3TypeStr类型Str的对象用于表示字符串可以使用’’或者””如’123’代表是字符串,而并非数字12330易错点31字符串的典型操作字符串的长度可使用len函数如len(‘xyz’)值为3索引可以从字符串中提取字符键入’xyz’[0]将会显示字符串’x’采用负数对字符串进行索引将由字符串的末端进行如’xyz’[-1]的值为’z’字符串可通过切片提取任意长度的子串,s[start:end]代表的子串是起始于start位置,终结于end-1位置的字串如’xyz’[1:3]=‘yz’start值缺省为0,end值缺省为字符串的长度也就是说,’xyz’[:]=‘xyz’[0:len(‘xyz’)]。323.3.4结构化类型Tuples元组是元素的序列,它并不要求其中的元素必须为字符,实际上元素的类型可以为任意类型,同时元素可以是不同类型Lists列表和元组一样,是值的有序序列,每个值可以由索引识别Dict(dictionaries)类似于列表,只是字典中的索引不需要是整型,而是任意不可变类型,入口并没有顺序,并不能通过索引来进行访问,可以将字典视为“键/值”对33Tuple示例和字符串类型一样,元组类型可以进行连接、索引以及提取操作34ListList与之前介绍的类型区别在于list为可变tuple,int,float以及str类型均为不可变类型列表类型的对象在其被创建后可被修改。35List方法L.append(o):将对象o添加至L的尾部;L.count(o):返回列表中对象o出现的次数;L.insert(i,o):将对象o插入至L的索引i位置;L.extend(L1):将列表L1中的元素添加至L的末端;L.remove(o):从列表L中将第一次出现的o删除;L.index(o):将列表L中第一次出现的o的索引返回;L.pop(i):i缺省值为-1,将列表L中的索引i的元素移除并返回;L.sort():将L中的元素进行排序;L.reverse():将L中的元素逆序。36序列类型的操作序列类型:str,tuple,以及list。这三类型的序列都可以使用如下操作:seq[i]:返回序列中第i个元素;len(seq):返回序列的长度;seq1+seq2:将两个序列连接;n*seq:将序列重复n次,并返回该序列;seq[start:end]:返回序列的部分;einseq:测试e是否在序列中;foreinseq:迭代序列中的元素。37序列类型的区别38类型元素类型示例可变性str字符‘’,’x’,’xyz’不可变tuple任意类型(),(6,),(‘xyz’,8)不可变list任意类型[],[6],[‘xyz’,8]可变Dict由大括号将元素括起,每个元素是“键:值”的形式字典操作:len(d):返回d中元素的数量;d.keys():返回包含d中keys的列表;d.values():返回d中values的列表;kind:若k在d中,则返回True;d[k]:返回d中键为k的值;d.get(k,v]:如果k在d中,返回d[k],否则返回v;d[k]=v:将值v与键k关联,即使已有与k关联的值;deld[k]:从d中将键k移除;forkind:依据d中keys进行迭代。393.3.5输入Input403.3.6IDLEIDLE提供文本编辑器,语法高亮,自动完形以及智能缩进语法高亮的shell集成调试器在启动IDLE后,将打开一个shell窗口,可向其中键入Python命令,同时提供文件菜单以及编辑菜单。其中文件菜单包括:创建新的编辑窗口,以键入Python程序打开现有Python程序将当前窗口编辑的内容写入文件,文件后缀为.py41423.4程序控制结构3.4.1条件语句3.4.2迭代3.4.3简单的数字程序程序控制结构串行程序按序执行语句,当语句执行完毕则停止算法需要两种重要的控制结构选择if迭代whilefor433.4.1条件语句分支选择程序更为有趣,最简单的分支语句为条件语句,条件语句包含三个部分:测试部分,即一个表达式评值为True或者False一段代码段,如果测试值为True一个可选的代码段,如果测试值为False44判断条件是否成立语句序列1语句序列2是否Python中条件语句结构Ifbooleanexpression:blockofcodeelse:blockofcode45识别奇偶值46嵌套如何判断当前输入整数是否能被2,3整除?47复合表达式如何求输入三个整数值中的最小值?483.4.2迭代与条

1 / 101
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功