二级pthon的客观题总结

版权声明:转载记得声明~~~ :) https://blog.csdn.net/ReCclay/article/details/88360163

一、数据结构的相关知识点

  • 算法
    • 算法具有可行性、确定性、有穷性的基本特征;
    • 算法是指解题方案的准确而完整的描述;
    • 算法的有穷性是指算法必须能在执行有限个步骤之后终止
    • 算法的复杂度主要包括时间复杂度和空间复杂度;
    • 算法的时间复杂度是指执行算法所需要的计算工作量(执行过程中所需要的基本运算次数)
    • 算法的空间复杂度是指执行这个算法所需要的内存空间
    • 算法的基本要素包括数据对象的运算和操作及算法的控制结构
    • 简单插入排序和选择排序法在最坏的情况下需要比较n(n-1)/2次
    • 快速排序法比冒泡排序法的速度快
    • 冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序
    • 希尔排序法属于插入类排序法
    • 算法是解题方案的准确而完整的描述
    • 算法分析的目的是:分析算法的效率以求改进

  • 二叉树

    • 在深度为x的满二叉树中,叶子结点的个数为 2x12^{x-1}
    • 在深度为7的满二叉树中,结点个数总共是271{2^7-1}
    • 设一颗完全二叉树共有699个结点,则该节点的叶子节点数是350(N+1/2)
    • 二叉树包含度为0的结点、度为1的结点、度为2的结点(度为0的节点总是比度为2的结点多一个,度为1的节点=全部节点-度为1的-度为2的)
    • 二叉树的前序遍历是指先访问根节点 -> 遍历左子树 -> 遍历右子树
    • 二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历
    • 后序遍历二叉树的过程是一个递归的过程
    • 二叉树的遍历是指不重复地访问二叉树中的所有结点
    • 二叉树是一种非线性结构
    • 二叉树具有两个特点:非空二叉树只有一个根结点;每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树
  • 数据结构

    • 数据结构指相互有关联的数据元素的集合
    • 在数据结构中,从逻辑上可以把数据结构分成‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬线性结构和非线性结构
    • 数据的逻辑结构反应数据之间的对应关系,与存储结构并不是一一对应的
    • 用树形结构表示实体之间联系的模型是:层次模型
    • 循环队列中元素的个数是由队头指针和队尾指针共同决定
    • 数据的逻辑结构是反映数据元素之间逻辑关系的数据结构
    • 对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数是n
    • 只有一个根节点的数据结构不一定是线性结构
    • 查找是指在一个给定的数据结构中查找某个特定的元素
    • 二分查找只适用于顺序存储的有序表
    • 如果采用链式存储结构的有序线性表,只能用顺序查找
    • 线性数据结构:线性表、队列、栈!
    • 二叉树不是线性数据结构
    • 队列是先进先出的线性表,而栈是先进后出的线性表,两个的共同点是:只允许在端点处插入和删除数据
    • 归并排序是要求内存量最大的
    • 数据的逻辑结构是与所使用的计算机无关的
    • 顺序存储结构是随机存取的存储结构
    • 链式存储结构是顺序存取的存储结构
    • 在单链表中,增加表头节点的目的是:方便运算的实现
    • 已知数据表A中每个元素距其位置不远,为节省时间,宜采用的算法是:直接插入排序
    • 用链表表示线性表的优点是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬便于插入和删除操作
    • 关系模型采用二维表来表示
    • 表框架由N个命名的属性组成,每个属性有一个取值范围称为值域
    • 二维表由表框架及表的元组组成
    • 数据是现实世界符号的抽象,数据模型是数据特征的抽象
    • 数据模型描述的内容有三个部分:数据结构、数据操作和数据约束

  • 程序设计

    • 结构化程序设计的原则是:逐步求精->自顶向下->模块化
    • 与信息隐蔽的概念直接相关的概念是 - 模块独立性
    • 为了使模块尽可能独立,模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
    • 数据独立性是数据与程序间的互不依赖性
    • 数据流图(DFD)是结构化方法的需求分析工具
    • 在黑盒测试中,测试用例的主要根据是-程序外部功能
    • 结构化程序设计主要强调的是:程序的易读性
    • 结构分析常用的是:判定树、数据字典、数据流图,没有PAD图
    • 源代码的文档化包括:符号命名要有意义、正确的程序注释、良好的视觉组织
    • 在结构化设计方法中,生成的结构图中,带有箭头的连线表示:模块之间的调用关系
    • 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
  • 面向对象

    • 继承是指类之间共享属性和操作的机制
    • Python 3.x 解释器内部采用完全面向对象的方式实现
    • 面向对象方法与人类习惯的思维方法一致
    • 面向对象方法可重用性好
    • 对象是属性和方法的封装体
    • 对象间的通信靠消息传递
    • 操作是对象的动态性属性

  • 软件工程
    • 软件工程是应用于计算机软件的定义、开发和维护的一整套方案、工具、文档和实践标准和工序
    • 软件设计包括软件的结构、数据接口和过程设计
    • 过程设计包括:系统结构部件转换成软件的过程描述
    • 系统结构部件转换成软件的过程描述
    • 软件是程序、数据与相关文档的集合
    • 软件工程的主要思想是强调软件开发过程中需要应用工程化原则
    • 软件工程设计工具:程序流程图、N-S、PAD、HIPO、判定表、PDL(伪码)
    • 软件危机体现在三个方面:生产率低、质量难以控制、成本不断提高
    • 软件测试的主要目的是发现程序中的错误
    • 软件生命周期中开发阶段任务是:详细设计、软件测试、概要设计
    • 软件调试的关键在于腿短程序内部的错误位置和原因
    • 软件调试可以分为静态调试和动态调试
    • 软件调试的主要方法有强行排错法、回溯法、原因排除法
    • 软件交付使用后还需要进行维护
    • 需求分析阶段的任务是:需求规格说明书评审、确定软件系统的功能需求、性能需求
    • 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是:需求设计
    • 软件测试实施步骤中包括:单元测试、确认测试和集成测试
    • 用于检测软件产品是否符合需求定义的是:确认测试
    • 软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程

  • 数据库
    • 数据库技术的根本目标是要解决数据共享的问题
    • 数据库系统的核心是:数据库管理系统
    • 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示的阶段是:概念设计阶段
    • 数据库设计的四个阶段按顺序为:概念设计、需求分析、逻辑设计、物理设计
    • 概念设计过程:由底向上、自顶向下、由内向外
    • 数据库设计可以采用生命周期法
    • 数据库设计是数据库应用的核心
    • 数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境设计出数据模式
    • 当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的:属性
    • 能够给出数据库物理存储结构与物理存取方法的是:内模式
    • 在数据库中,索引属于:内模式
    • 数据库设计中,反应用户对数据要求的模式是:外模式
    • 描述单个用户使用的数据视图是:外模式
    • 数据库系统减少了数据冗余
    • 数据库设计内容的两个方面包括:概念设计和逻辑设计
    • 关系数据库管理系统能实现的专门关系运算是‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬:选择、投影、连接
    • 设关系R是4元关系,关系S是一个5元关系,关系T是R与S的笛卡儿积,即T=R×S,则T是9元关系
    • 数据库处理的最小单位是:数据项
    • 数据库是一个结构化的数据集合
    • 文件系统和数据库系统主要区别的:数据库系统具有特定的数据模型
    • 数据库描述内容:数据操作、数据结构、数据约束
    • 层次型、网状型和关系型数据库划分的原则是:数据之间的联系方式
    • 在一个关系中,如果存在多个属性(或属性组)都能用来唯一标识该关系的元组,且其任何子集都不具有这一特性。该关系的这些属性(或属性组)被定义为候选码
    • 某个数据约束规则为:设属性A是关系R的主属性,则属性A不能取空值。则该数据约束规则的名称是:实体完整性规则
    • 将E-R图转换为关系模式时,可以表示实体与联系的是关系
    • 在E-Rt图中,用来表示联系的图形是:菱形
    • 属于概念数据模型的是:关系
    • 数据模型按不同应用层次分为三种类型:概念数据模型、逻辑数据模型和物理数据模型
    • DML是数据操纵语言
    • DDL是数据定义语言
    • DCL是数据控制语言
    • 对数据库进行规划、设计、维护、监视等管理工作的人员称为数据库管理员
    • 数据库管理员对多个应用的数据需求作全面规划、设计与集成
    • 数据库管理员需要完成数据库维护,完成对数据库中数据的安全性、完整性、并发性控制及系统恢复、数据定期转存等工作

  • 其他
    • 关系表中的每一横行成为元组

    • PFD图中用箭头表示控制流


二、python相关

  • 编程语言基础

    • 静态语言采用编译方式执行,脚本语言采用解释方式执行;
    • 编译是将源代码转换成目标代码的过程;
    • 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程;
    • C语言是静态语言,Python语言是脚本语言
    • python语言特点:黏性扩展、平台无关、强制可读
    • python变量的命名特点:随时命名、随时赋值、随时使用
    • 三种基本数字类型:整数类型、浮点数类型、复数类型
    • 程序设计的基本结构:顺序、分支、循环
    • 注意变量的命名不能以数字开头;变量名中不允许出现特殊符号例如*!等
    • python发生异常后经过适当的处理可以继续运行而不崩溃;
    • 异常语句可以与 else 和 finally 保留字配合使用
    • 局部变量为组合数据类型且未创建,等同于全局变量
    • 局部变量和全局变量是不同的变量,但可以使用global保留字在函数内部使用全局变量
    • 局部变量是函数内部的占位符,与全局变量可能重名但不同
    • 假设函数中不包括global保留字,对于改变参数值的方法:参数是list类型时,改变原参数的值;参数是int类型时,不改变原参数的值;参数是组合类型(可变对象)时,改变原参数的值
  • 程序设计基础

    • max是python的内置函数,所以应该这样用print(max(listV)),而这样用是错的print(listV.max())
    • 执行 eval(“Hello”) 和执行 eval(" ‘Hello’ ") 得到不相同的结果,前者是错误的
    • fo.write(",".join(ls)+ "\n")数据之间用逗号分隔开,最后加一个换行
    • 浮点数0.0和证书0具有相同的值,硬件执行单元,计算机指令处理方法和数据类型均不同
    • 关于random.uniform(a,b)的作用:生成一个[a, b]之间的随机小数
    • range(1,4):是1~3
    • sorted(a,reverse = True)降序排列

  • python小知识

    • 复数的虚数部分通过后缀“J”或者“j”来表示
    • 组合数据类型可以分为 3 类:序列类型、集合类型和映射类型
    • python的索引下标从0开始
    • 列表的切片[nⓂ️k] 从n到m,步长为k
    • Python 语言要求所有浮点数必须带有小数部分
    • x**y表示x的y次幂,其中,y也可以是整数
    • x // y x与y之整数商,即:不大于x与y之商的最大整数
    • python的字符编码均采用Unicode编码
    • chr(x) 和 ord(x) 函数用于在单字符和 Unicode 编码值之间进行转换
    • 字符串比较规则:从第一个字符开始,一一比较编码大小,当一个字符串全部字符和另一个字符串前部分字符相同时,长度长的字符串为大
    • 关于函数的可变参数,可变参数*args传入函数时存储的类型是tuple
    • f = lambda x,y:x+y 执行后,f的类型为function
  • 保留字(后面附有所有的保留字表)

    • python的33个保留字
    • do不是python的保留字
    • Python 使用 def 保留字定义一个函数

  • 序列类型

    • 序列类型是一维元素向量,元素之间存在先后关系,通过序号访问
    • str、tuple 和 list 类型都属于序列类型
    • 列表类型用以表示一维和二维数据
  • 字典

    • 字典是集合类型的延续,各个元素并没有顺序之分
    • 字典是可以存储可变数量键值对的数据结构,键和值可以是任意数据类型
    • 字典的主要用法是通过索引符号来实现查找与特定键对应的值
    • 若想保持一个集合中元素的顺序,需要使用列表,而不是元组
    • 字典要求键值对中的键是不可改变变量类型,所以d = {[1,2]:1, [3,4]:3}不能建立字典
    • d.get(key, default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回default
    • 与其他组合类型一样,字典可以遍历循环对其元素进行遍历for < 变量名> in < 字典名>的语法格式;其中for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得:
for k in d:
	print(" 字典的键和值分别是:{} 和{}".format(k, d.get(k)))

  • 文件

    • 考题概览

      • 当文件以文本文件方式打开时,读写按照字符串方式,采用当前计算机使用的编码或指定编码;
      • 当文件以二进制文件方式打开时,读写按照字节流方式
      • writetext函数不是 Python 对文件的写操作方法.
      • 高维数据有键值对类型的数据构成,采用对象方式组织;
      • 二维数据采用表格方式组织,对应于数学中的矩阵;
      • 一维数据采用线性方式组织,对应于数学中的数组和集合等概念
      • 文本文件可以看成是由行组成的组合类型,因此,可以使用遍历循环逐行遍历文件
      • 如果一个文本文件从网络中获得,增加encoding参数,指定编码方式打开;如果python程序生成了一个文件,并再次打开,则不需要指定encoding参数。
    • 操作相关

      • 创建写模式’x’
      • 覆盖写模式w
      • 只读模式r
      • 追加写模式a
      • f.read()是最常用的一次性读入文件的函数,其结果是一个字符串
      • f.readlines()也是一次性读入文件的函数,其结果是一个列表
      • f.write(s) 向文件写入一个字符串或字节流(要显式的使用’\n’对写入文本进行分
        行)
      • f.writelines(lines)将一个元素为字符串的列表写入文件
      • f.seek(offset) 改变当前文件操作指针的位置 0-开头 2-结尾
  • CSV文件

    • CSV文件采用纯文本格式,通过单一编码表示字符
    • 以行为单位,开头不留空行
    • 每行表示一个一维数据,多行表示多维数据
    • 以逗号分隔每列数据,列数据为空也要保留逗号
    • 整个CSV文件是一个二维数据
    • CSV文件格式是一种通用的文件格式,应用于程序之间转移表格数据
    • CSV文件的每一行是一维数据,可以使用Python中的列表类型表示

  • time标准库

    • time.strftime()函数是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符串,对时间格式进行表达
    • time.perf_counter()返回一个CPU级别的精确时间计数值,单位是秒。由于这个计数值起点不确定,连续调用才有意义
    • time.sleep(5) 推迟调用线程的运行,单位为
  • 第三方库

    • 考题概览

      • 数据分析的相关第三方库:numpy;scipy;pandas
      • python用于界面开发的第三方库有:pygtk、pyqt、wxpython
      • 数据分析的第三方库有:numpy、pandas
      • 数据可视化方向的第三方库有:mayavi2
      • 适用于web开发的第三方库有:pyramid、flask、Django
      • 网络爬虫的第三方库有:scrapy
    • jieba

      • 三种模式:精确模式、全模式、搜索引擎模式
      • jieba.cut(s)是精确模式,返回一个可迭代的数据类型;
      • jieba.lcut(s)是精确模式,返回列表类型;没有冗余度;
      • jieba.lcut(s, cut_all = True)用于全模式,返回的是列表;冗余度最大
      • jieba.lcut_for_search(s)用于搜索引擎模式(首先执行精确模式,然后再对其中长词继续切分),返回的是列表;倾向于寻找短词语;具有一定的冗余度,但是比全模式冗余度小
      • jieba.add_word()函数,用来向jieba词库增加新的单词

在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页