做python二级选择题积累的知识点
其他
2020-04-02 10:59:57
阅读次数: 0
二叉树
- 如果一颗树深度为d,总节点数是:2^d - 1 。
- 最后一层叶子节点数是:2^(d-1),满二叉树的最后一层的节点个数即为叶子节点的个数。
- 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+1。
- 二叉树是非线性结构。
- 性质:任意二叉树上,度为0的节点(即叶子结点)总是比度为2的结点多一个。
- 二叉树主要有3种遍历算法,先序、中序、后序。后序遍历二叉树的过程是一个递归的过程。
- 前序遍历:根左右。 中序遍历:左根右。 后序遍历:左右根。
open
- 当文件使用文本格式打开时,读写按照字符串方式,采用计算机当前编码或者指定编码。
- 当文件使用二进制格式打开时,读写按照字节流方式。
- open() 打开文件之后,文件的内容并没有在内存中。
字典
- 字典为映射类型。
- 字典用于表示高维数据,一般 不用于 表示一维二维数据。
- dcit.get(key,default) 若是字典不存在key的键,则返回默认值。
算法
- 算法是指解题方案准确而完整的描述。
- 一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
- 算法的时间复杂度与空间复杂度没有直接关系。
- 算法的时间复杂度是指算法执行过程中所需要的基本运行次数。
- 算法的空间复杂度是指运行过程中需辅助存储空间的大小。
- 算法的重要特征:可行性,有穷性,确切性,输入项,输出项。
- 算法的有穷性指在有限的步骤后结束。
- 算法的基本要素:数据对象的运算和操作,算法的控制结构。
数据结构
- 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
- 数据的逻辑结构反应元素前后间关系,包括:集合,线性结构,树形结构,图形结构。
- 数据的物理结构指数据在计算机存储空间的存放形式。
- 数据独立性是指应用程序和数据结构之间相互独立, 互不影响。
- 结构化程序设计的基本原则是:自顶向下;逐步求精;模块化;限制使用GOT0语句。
- python常见的数据结构为序列(list,tuple)、映射(dict)、集合(set)。
- 序列是一维元素向量,具有先后关系,元素间由序号引导,通过下表访问序列的特定元素。
数据库
- DDL是数据定义语言;DML是数据操纵语言;DCL是数据控制语言;DBMS是操作管理数据库。
- 层次型、网状型和关系型数据库划分原则是数据之间的联系方式。
- 数据库系统的核心是数据库管理系统。
- 数据库应用系统中的核心问题是数据库设计。
- 数据库的数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。
- 在关系数据库中,二维表用来表示实体之间的联系。
- 数据处理是对数据(包括数值的和非数值的)进行分析和加工的技术过程。目的是从大量数据中提取出有价值的数据。
- 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据结构是指数据之间的互相关系和数据允许;
- 数据库技术的根本目标是要解决数据共享的问题。
- 数据库管理的三级模式结构:外模式(用户模式),概念模式(逻辑模式),内模式(物理模式)。
- 内模式(物理模式)给出了数据的文件结构、索引、集簇以及hash等存取方式路径。
- 关系数据库管理系统能实现的专门关系运算包括 选择运算、投影运算、连接运算。
- 文件系统与数据库系统的主要区别是数据库系统具有特殊的数据模型。
- 分布式的数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点。它并不一定是冗余的。
- 数据独立性是指数据于程序间的互不依赖。
- 数据库系统DBS 包括 数据库DB 和 数据库管理系统DBMS。
- 数据库设计的阶段是:需求分析、概念设计、逻辑设计、物理设计、实施运行和维护。
- 为了建立一个关系,首先要指定关系的属性。
- 表示关系的二维表中的各元组的每一个分量必须是不可分的基本数据项。
- 一个关系的属性名表称为该关系的关系模式。
- 在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。
队列、堆和栈
- 循环队列中元素的个数是由队头指针和队尾指针共同决定。
- 堆和栈按照后进先出原则。
- 栈具有记忆作用;对栈的插入与删除操作中,不需要改变栈底指针。
- 实现递归调用中的存储分配通常用栈。
- 堆和队列的共同点是只允许在端点处插入和删除元素。
- 堆只允许在表的一端进行插入和删除操作,是一种后进先出的线性表;而队列只允许在表的一端进行插入操作,在另一端尽心删除,是一种先进先出的线性表。
- 线性表的顺序存储结构:放在一组地址连续的存储单元中,每个元素可通过LOC(ai)=LOC(a1)+(i-1)L计算得到,实现随机存取。
- 线性表的链式存储结构:对结点进行存取,都得从链的头指针指向的结点开始,是一种顺序存取的结构。
- 在单链表中,增加头结点的目的是方便运算的实现。
- 链式优点方便插入和删除数据。
- 线性链表中进行插入和删除时,不需要移动表中的元素。只要改变指针即可。
- 只有一个根节点的数据结构不一定是线性结构。
- 有一个以上根节点的数据结构肯定是非线性结构。
- 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 0或35。 (rear-front+35)%35 =0 or 35
- 在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构.
面向对象
- 面向对象方法中,继承是指 类之间共享属性和操作的机制。
- 面向对象特点:标识惟一性、分类性、多态性、封装性和模块独立性好。
- UInt的实例为一个具体的无符号整数如"369"。
- 对象间的通信靠信息传递,以模拟现实世界中不同事物彼此之间的联系。
- 操作是对象的动态属性。对象是数据和操作封装体。并非所有对象都必须有继承性。
排序
- 快速排序:通过一趟排序将记录分割成独立的两部分,一部分的关键字比另一部分小,再分别排序,以达到整个序列有序。 快速排序 最坏需要比较 n(n–1)/2 次。
- 插入排序:将无序的元素一次插入到已经有序的线性表中,得到新序列。
- 选择排序:选出最小的元素,将它放到最前面,然后对剩下的子表采用同样方式,知道表空为止。 选择排序最坏需要比较 n(n–1)/2 次。
- 冒泡排序需要n/2遍从前往后和n/2遍的从后往前扫描,最坏需要 n(n-1)/2。
- 归并排序:将两个或两个以上的有序表组成一个新有序表。 需求内存量最大的是归并排序。
- 堆排序法,最坏情况比较次数较少为O(nlog2n) 。
- 顺序查找最坏需要n次,链式存储结构可用。
- 二分法查找只适用于顺序储存的有序表。
- 在长度为n的有序线性表中进行二分查找,最坏需要O(log2n)次,最少检索次数为1。
- 希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。
软件
- 软件工程包括三要素:方法、工具和过程。
- 软件工程的定义: 是应用于计算机软件的 定义、开发和维护的一 整套方法、工具、文档、 实践标准和工序。
- 软件是指程序、数据以及相关文档的完整集合。
- 软件测试只是发现错误;软件调试是为了诊断和改正程序中的错误。
- 软件调试可以分为静态调试和动态调试。
- 软件调试的主要方法有强行排错法、回溯法、原因排除法等。
- 设计阶段:数据结构设计,给出系统模块结构,定义模块算法。
- 结构分析常用工具:数据流图(DFD)、数据字典(DD)、判定树、判定表。
- PAD图是常见的过程设计工具中的图形设计。
- 软件功能分解属于软件开发中的总体设计阶段。
- 软件需求规格说明书的作用的是:①便于用户和开发人员的理解和交流;②反应用户问题的结构,作为软件开发的基础和依据;③作为确认测试和验收的依据。
- 软件开发的结构化生命周期:定义、开发(概要和详细设计)、运行维护。
- 软件工程的白箱测试讲程序看做是路径的集合。
- 黑盒测试:等价类划分法、边界值分析法、错误推测法、因果图等。
图表
- 在(程序流图)PFD图中箭头表示控制流。
- 在(数据流图)DFD中,带有名字的箭头表示数据流向。(用于软件开发需求分析阶段)
- 在E-R图中用矩形表示实体集,用椭圆表示属性,用菱形表示联系。
- 结构分析常用工具:数据流图(DFD)、数据字典(DD)、判定树、判定表。
- 在结构化设计方法中,生成的结构图中,带有箭头的连线表示模块之间的调用关系。
- 程序流程图基本元素的是起始框,判断框,连接点。
- 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。
- 在有向图中,若任意两个顶点都连通,则称该图是强连通图,这样的有向图的形状是环状,因而至少有n条边。
- 视图设计一般有三种:自顶向下、自底向上、由内向外。可当都使用也可混合使用。
各种库的作用
- 数据可视化 matplotlib,mayavi2,mayavi,
- 数据分析 pandas,numpy,
- 机器学习 TensorFlow,MXNet,Caffe2,scikit-learn。
- Web开发 Django,pyramid,flask。
- 文本处理 pdfminer,openpyxl,
- 图形库 aracde,PIL,
- 用户图形界面 PyQt5,
内置函数
- 注意需要用global声明的情况。
- 函数是一种功能抽象,使用后维护难度降低啦。使用函数目的是降低编程难度和代码重用。
- divmod()函数返回一个包含商和余数的元组(a // b, a % b)。
- python中complex表示复数类型,必须加j或J的后缀。complex(1,3),即为1+3J。
- 复数没有绝对值的概念,只有模的概念。即对于复数z=a+bi,它的模:∣z∣=√(a2+b2)。浮点类型
- complex(r,i)函数的作用是创建一个复数r+i*1j,其中i可以省略。
- isnumeric判断是否只由数字组成。(只针对Unicode对象)。
- time.ctime()显示为更可读的模式。Tue Feb 17 10:00:18 2013
- time.sleep(秒数),推迟调用线程。
- sys.versuon 获取版本信息。
- all()函数用于判断所给元素是否都为true,除了0,空,None,False以外都算是true。
- sample(list,num) 从list列表中随机选取num个元素返回,原列表不变。
- id() 函数用于获取对象的内存地址。
- “\n"转行符使用len为1。而”/n"这样是两个。
- list=[1,2,3] list.reverse() 该方法无返回值,会将原列表元素反向排序。如是硬接收打印则为None。
- uniform(0,1) 与 uniform(0.0,1.0) 的输出结果相同,都是浮点类型的实数,可以加一个int()转为整数类型。
- f = lambda x,y:x+y 执行后,f的类型为函数地址,也就是函数对象。
参数
- 函数的可变参数:*args一个星表示元组,**args两个星表示字典。
- 局部变量可以和全局变量重名。函数运算结束后,局部变量会被释放。
- Python支持按照位置传参也支持名称传参,但不支持地址传参。
- 函数能同时返回多个参数值,默认自动将多个返回值封装成一个元组。
程序语言
- python提供9个基本的数值运算操作符,也叫内置操作符。
- Python 二元数学操作符都有与之对应的增强赋值操作符。
- python提供三种数字类型:整数类型、浮点类型、复数类型。
- python字符编码可以使用ASCII编码和Unicode编码。
- Python是解释性语言,没有主函数。执行高效不属于python语言特点。
- 计算机语言程序设计语言:机器语言,汇编语言,高级语言。
- 高级语言分为:采用编译方式执行的静态语言(C语言);采用解释方式执行的脚本语言(Python)。
- 程序由三种基本结构组成:顺序结构,选择结构,循环结构。
- 循环包括两种:使用for的遍历循环;使用while的无限循环。
pip,turtle,保留字,注意,字符串比较
- 属于Python的pip工具命令的选项show,install,get。
- pyinstaller -F file.py 将py文件打包成可执行exe文件。
- home() 函数设置当前画笔位置到原点,朝向东。
- true并不是Python的保留字,True才是。
- 表达式 ‘y’<‘x’ == False 的结果是False。
- for或者while与else搭配使用时,仅循环正常结束后才会执行else的语句块。
- unexpected indent 表示意外缩进。
- 字符变量是单引号括起来的一个字符,例如’a’,也可以是一个转义字符如’\n’。
- 字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同的情况下,就比第二个字符串,以此类推。
A-Z 65-90
a-z 97-122
- 关于十六进制,字母A到F或a到f表示10~15。
发布了179 篇原创文章 ·
获赞 20 ·
访问量 1万+
转载自blog.csdn.net/ExclusiveName/article/details/104576238