计算机程序
- 分时操作系统:允许多个联机用户同时使用一台计算机系统进行计算的操作系统
- 冒泡排序最坏的比较次数:n(n-1)/2
- 静态测试不用运行软件,动态测试就是上机
- 白盒测试有:逻辑覆盖测试,基本路径测试。白盒测试时以程序内部逻辑结构为基础的测试技术。
- 补码符号位取反是偏移码
- 冯诺依曼计算机结构:结构存储控制的计算机结构
- 进程一旦创建,进入就绪状态
- 虚拟存储器是对主存的扩展,不属于外存储器
- 总线带宽:总线的数据传输率;总线宽度:总线根数
- \n 是换行,\r是光标回到开头
- 第二范式:如学生学号,班级编号,班长学号
- 火车票和火车乘客是M:N 多对多关系
- 软件单元测试的内容:模块接口,局部数据结构,边界条件,独立路径,比较判断与控制流 【这个题不知道也罢】
- 每个学校有一名校长,且不同学校的校长可以是同一人,则实体学校和实体校长间的联系是 :多对一。【题目给了什么信息,你就按什么答,不要凭借常识,这里的“可以”=“是”】
- 关系模型 = 二维表
- 结构图中,“箭头”表示模块之间的调用关系;在数据流图中,带有名称的“箭头”是“数据的流向”;程序流程图(PFD)中,箭头代表控制了
- 递归用的存储分配通常是栈
- 衡量模块独立性的度量准则:内聚性和耦合性【内聚是内部,耦合是之间】
- 数据处理的最小单位:数据项item
- 关系型数据库实现的专门运算:选择,投影,连接
- 属性依赖标记为:X->Y 。Y依赖X。为啥依赖,因为有重复值,例如姓名依赖于学号,课程学分和课程名依赖于课程号,真正唯一的都是数字编码。那么,这个问题里主属性有两个,学号和课程号;姓名部分依赖于学号;这个案例是1NF第一范式,因为存在部分依赖;如果是2NF就不存在部分依赖。总共有1NF,2NF,3NF,BCNF。BCNF要求不存在传递依赖,如课程号,课程名,学分,先修课程号1,先修课程号2,每个都依赖于课程号 【C# -> {其他}】。
1NF 不能再分
2NF 非主属性完全依赖
3NF 非主属性不能传递依赖
BCNF 所有都不依赖 - 面向数据在计算机中物理表示是:物理模型
- 程序流程图是详细设计阶段用的,箭头代表控制流
- 基本路径测试是白盒测试、动态测试
- DFD的作用是支持软件系统功能建模
- 结构图描述软件结构
- 深度等于控制的层数
- CSV是通用文件格式,主要用于数据交换,可以保存一维和二维数据
- ls = [1,2,3,'1','2','3'] 这种序列是一维数据不是二维!只是数据类型不一样,不代表维度增加了
- 单元测试:不涉及模块出错处理功能
- “解释”是源代码“逐条”转换,然后执行的过程,不是“一次性”翻译
- 线性结构一定能采用顺序存储结构,也能采用链式存储结构。非线性结构也可能采用顺序存储结构。
- 算法的时间复杂度、空间复杂度都不是具体的时间、空间大小,而是一种趋势的度量。
- 只有一个根结点和一个子结点算 树型结构;树形结构是非线性结构
- 向量、栈、线性表、队列都属于线性结构的顺序存储
- 所有结点数 = 度 +1。也就是说,算完乘法+1 = 所有加法之和
- 二叉树的性质:叶子结点比度为2的结点多一个
- 二叉树是非线性结构
- 两个以上根结点的数据结构一定是非线性结构
- 集成设计:测试和组装软件。主要是发现与接口有关的错误,发现概要设计的错误。【概要设计:从需求到交互】
- 三级模式和二级映射,是为了提高数据库的数据独立性,包括“逻辑”独立性、“物理”独立性
- 数据库的三级模式:概念模式(逻辑结构的描述,公共数据的视图),外模式(用户见到),内模式(物理模式,物理存储结构和存储方法)。
- 软件设计原则:模块独立,规模“适中”,单出入口,深度扇入扇出相当
Python语言
- pass 是保留字, true不是保留字,要大写为True (None False),do 不是保留字。
- python 是解释型脚本语言(直接从源码运行,不用编译成二进制)
- 文件路径名可以用 // ,/, \ ,不能用这个\。也就是说,我们常见的路径符号需要转译才能用,其他的都能直接用。
- 八进制数 0o 十六进制 0x,二进制数0b
- Pyhon程序可以不包含main 函数,如果包含了一个函数main,那么这个函数的地位和其他函数相同
- id() 是python的内置函数。返回的是“内存地址”,是一个正整数,不是字符串!
- type() 是呈现括号中数据的类型如
,type(type())则是 - exec() sum() abs() 都是内置函数;close不是内置函数,是系统管理的
- python组合数据类型:集合(无序),序列(有序),映射(如字典)
- 希尔排序在最坏的情况下最快,简单/冒泡/快速 都是O(n^2)
- 'a' 的Unicode为97!
计算
- a < b 返回布尔值 True False
- 整数相除输出浮点数,如10/2 输出5.0
- Pyhton整数类型没有取值范围限制【用C,数组,无限长……】
- // 是取商,如10//8 就是1(不大于商的最大整数)
- round() 是四舍五入不是取整!所以round(2.6) =3 。int()是取整。
- chr(x) 返回数字 x作为Unicode编码对应的字符
- range(a,b,sep) 不包含b!!
- len(x) x='A\0B\0C' ; 转译符号\ 不占空间的,\0就是指1个空格,所以长度是7-2=5
- 括号优先于 // 所以 9*28//10 = 252//10 = 25。
- 0.1+0.2 == 0.3 False 但是0.1+0.3 == 0.4 True,前者丢失精度,后者正好补偿了。 为什么0.1+0.2=0.30000000000000004 (cnblogs.com)
- set() 转化为集合,无重复且没有次序,例如set('djadd11da') = {'a','d','1','j'}
Python 分支循环
- 简单表达法: 表达式一 if 条件 else 表达式二
- for 循环可以遍历字典的键,而不是值
- if flag: [此处flag只要不等于0 都被认为这句话表达的是 TRUE]
- for 循环中的 if ……continue,表示跳出当前的for循环一次!
- while 叫无限循环,for 叫便利循环,名字不要搞反
- 单分支:if ;二分支:if- else ;多分支:if elif else
- Python异常处理:try-except-else-finally,没有if! try 必执行,try成功执行else;try失败执行except;finally必执行。
- break执行时,会跳出break所在的第一层循环【这句话是对的,“跳出”是说以后都不干,而不是“continue”的“回到循环开头”】
- for或while 和else搭配的时候,循环正常结束就会执行else【不正常指比如break】
- for 循环中出现的if……break 语句,说明彻底停止for循环!只有continue才是停止当次。
Python 列表
- 列表中的元素可以是任意类型,类型还能更改
- list.insert(index, obj) 两个参数!
- 班级学生身高年龄体重这种二维表格数据适合列表而不是字典格式
- ",".join(ls)
- l.append([5,6]) 功能是追加进[5,6] 这样一个列表,即[[5,6]]
- min[1,2,3] 得到的就是1,不要被题目迷惑,这和min(l) l=[1,2,3] 一个意思
- ls.reverse()
- 元组(tuple)是不可变序列(list);序列类型是一维元素向量
- 列表转化为字符串的方法是str(ls),注意列表有几个元素,字符串就有几个,比如ls=['1','2202','a'],str(ls) = '1','2202','a' ,如果要拼起来需要用join。
Python 字符串
- 字符串切片:ls[:2] 指的是0,1两个字符,而不到2! ls[3:-1]取不到最后一位!错了无数次了!
- a = input("").split(",") 这句话可以将录入的信息变成字符串,且用逗号分隔并存为列表
- 字符串长度的函数是 len(),不是lenstr()
- str(10/2) 结果是"5.0"
-
- strip 函数是去除头尾的内容,例如strip(","),去除字符串头尾的逗号;所以strip不能管字符串中间的东西
- ***.replace(",",";") 指的是字符串中间的符号由逗号替换为分号
1.string.printable 包含所有可打印的字符串,例如0-9数字,字符a-z,不包括字符串。 - 字符串类型可以当作注释,这句话的意思是 “```是注释 ```
- ls = [1,2,3,4] 要变成1 2 3 4,方法是:"".join(str(ls).strip("[]").split(","))) 看不懂
- 基本的字符串操作符包括: + * in
- str.split('分隔符号 ',分割次数-1)
所以,如果str 中没有分隔符号,那么就不用分割,字符串长度就是1了。 - 字符串 '44' 和ls=[44,22] 里面的整数44不一样,所以不等价。
- sep.join(seq) join的用法:前面的是分隔符,后面的是要连接的元素序列、字符串、元组、字典。所以'{":->4}'join("ab")的结果是a{:->4}b
- for i in range(len(ls)) 和 for i in ls,循环次数一样,但是i的含义完全不一样,前者是int数字,后者是字符串str。
- print(str.center(10,"")) 这句话意思是居中两侧 填充,注意 * 必须有"*",是字符,否则会SyntaxError。
- 字符串比较大小,空格是32,空是0,a是97,所以 x='中文', y='中文字',print(x>y)结果是True。
- 字符串格式化::<填充><对齐><宽度>,<精度><类型>
Python 字典
- sorted(dd.keys()) sorted按照ASCII 排序,键的ASCII。
- max ,min() 如果中间是字典,那么比较的是key,输出的是最小的key,而不是value! 记反啦! 例如max({2:10,3:4})得到的结果是3;dd=['a':30,'b':20] 输出的是b。
- 字典类型无法表示一维数据
- 表达键值对的字典类型最可能属于的数据组织维度是:高维。
- print(dd.keys()) 打印的是 dict_keys ['','',''] 也就是打印了内部数据类型dict_keys,以及所有键。
Pyhton函数
- 函数内部的赋值只是局部变量,不改变全局变量!
- 局部变量标识符和全局变量标识符可以相同,因为用完即销毁
- 函数内部引用组合类型全局变量,可以不同global 声明;引用数字类型,必须声明。
- 函数里没有 print 语句,调用时啥都不输出的
- try except 不要和break同用
- 函数传递方式有两种:值传递(字符串,数字,元组)【都是不可变类型的实参】;引用(地址)传递:实参可变的,如列表字典
- 按照形参名称传递:例如def fun(x=3,y=2) 用的时候可以是 fun(y=4,x=2),不是按顺序对应,是按变量名字对应。
- return 可以返回0个值,所以没有返回值也可以用return;如果不写return,print (fun())是啥都不打印的!
- all() 函数、abs()都是内置函数。 all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
- 全局变量是在函数之外定义的变量。在函数内部使用时,需要使用global声明。如果未声明,不影响。函数内部改变了外部定义的组合类型变量的值,外部该变量的值随之改变。
- 函数调用,默认以位置调用,例如def (x,y=1,z=2): 可以用f(1),f(1,2,3),f(1,2),但不能这样写:f(1, ,3)
- zip(x,y) 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。例如x = [1,2,3],y= ["a",'b','c'], 那么zip(x,y) 就是[(1,'a'),(2,'b'),(3,'c')]
Python 文件
- r:只读打开,指针指向文件头,如果文件不存在会报错
- w:只写打开,指针指向文件头;如果文件存在则清空,文件不存在则创建
- a:追加写,指针指向尾部,不存在则创建
- x:创建写,如已存在则异常
- seek是指针的位置,是所在行的列位置,不是行!例如seek(2) 之后再readline,指读取第一行的第三个字符到最后一个字符
- f = open(<文件路径文件名>, <打开模式>),不要记成了fopen!
- 写入的函数:write(x),writelines(x)。x必须是字符串,不是int。writelines(x) 中如果x是列表,则直接把列表里面的字符“连起来”,比如x = ['春眠', 不觉晓'],写完就是春眠不觉晓。
- 默认字符编码是UTF-8
- f=open(),print (f) 会报错,因为没做读写操作
Python 库
- from turtle import *,用处是之后不用写turtle. 。
- datetime库:
- 有date,time,datetime等功能
- random.randit(a,b) 形成的是[a,b]随机整数,包括b!
- pip库功能:
- search 查找; uninstall 卸载; download 下载不安装; install 安装;freeze;show;wheel;hash;completion;help。
- random.random() 0-1,不包含1; random.randint(a,b) 包含a,b
- turtle.pensize() 同名是turtle.width()
- random.uniform() 实数
- pyinstaller 打包源码的工具。可以打包进图片,但只能处理 utf-8
- pyinstaller -F -onefile 是在dist文件夹中只生成独立的打包文件
pyinstaller 库
-h --help 帮助
--clean 清理临时文件
-D --onedir:默认值,生成dist目录
-F -- onefile 生成独立的打包文件
-i 指定打包使用的icon文件
turtle 库
seth(x) 是setheading(x) 画笔旋转 x 角度【这个表达有问题,应该是设置绝对角度】
home()设置当前画笔位置为原点,朝向“东”
time 库
- perf_counter 不算是内置函数——是系统库,但不是内置函数。
- time() 返回系统时间(数字);ctime() 返回格式化后的时间 gmtime() 返回电脑可以读取加工的时间
Python 第三方库
- 图像处理:pillow opencv-python PIL
- 机器学习,深度学习:pytorch TensorFlow,MXNet
- 自然语言: NLTK
- 爬虫:requests scrapy
- 图形界面:wxpython
- 数据可视化:matplotlib,ggplot, vispy
- excel :openpyxl
- 音频处理:TimeSide
- GUI扩展:**PyQt5 **………………
- web开发:Pyramid Django、 flask
- 图形库 Arcade
- 游戏:pygame
- 人工智能:Pytorch,MXnet,Keras
- OCR:pyocr
- 数据分析:Numpy Pandas Seaborn
Python 历年真题得分统计
题号 | 得分 | 特点 |
---|---|---|
经典13 | ? | 已CHECK |
经典12 | 25 | 已CHECK |
经典11 | 29 | 已CHECK |
经典10 | 29 | 已CHECK |
经典09 | 30 | 已CHECK 38题,23题 |
经典08 | 33 | 已CHECK |
经典07 | 32 | 已CHECK 这份竟然没有代码题 |
经典06 | 30 | 已CHECK 27题;30题 |
经典05 | 26 | 已CHECK 22题 |
经典04 | 26 | 已CHECK 27题 19题 |
经典03 | 27 | 已CHECK |
经典02 | 23 | 已CHECK 35题 37题 |
经典01 | 31 | 已CHECK |
精品10 | 24 | 已CHECK |