第一章:信息和计算机基础

70分及格
简答题:10分x3题,信息技术简答题:不要求字数,踩点即可
教师招聘:刷题,留几套最新的考试前刷

1.信息及其特征

1.1信息的概念(单选)

信息:泛指数据中所包含的意义(考频极低)

  • 3.14单看无意义,讨论圆时可以当成圆周率,日期可以当成3月14日
  • 这里的意义就是信息
  • 3.14被称为数据
  • A信件:纸上(途径)
  • B文字:128√e980(数据)
  • C含义:对折纸张,表白
  • 以上哪个是信息:C,只有C有意义,B是数据

数据:信息的载体,图、文、音、视频。

文字=信息(错)
数据=信息(错)
图像中表达的内容=信息(对)

信息是用来消除不确定性的东西(记这句话)

举例的书/课本不会让你从不会变为会,而是其中的知识,故书本里面的知识才是信息

信息就是信息,它不是物质也不是能量。信息是区别于物质和能量的第三类资源。组成事件的3要素:物质、能量、信息(记这句话)

红绿灯:本身是物质
发出的红光:能量
红灯停:信息

1.2信息的特征(选择题、简答题)

普遍性无处不在,各种各样

信息是随着人类的诞生而来的(错),有事物就有信息

真伪性:信息有真有假
传递性:空间、时间发生了相对的变化,打破时间空间限制(外卖、考古)

传递的动作

共享性:同一信息可以被多人接收和利用

群,共享文件(文件被共享—传递性)
共享性的前提一定有传递性
侧重于传递的结果
1人1个苹果交换,还是1人只有1个苹果,1人1个思想交换,1人就有了2个思想:共享而非传递性

载体依附性:数据,图文声像

信息必然有载体
载体可以不唯一

价值性:同一条信息对不同的人价值不唯一

精神、物质
接受者的需求

时效性不同时间,作用不同

并不是过时的信息就没有价值

在同一个场景中,可能7条特征都存在,只是侧重点不同

1.钉钉群里每天都能看到各种各样信息:普遍
2.团支书编辑一段文字:收团费信息:载体
3.要求:11点~12点之间上交团费:时效
4.点击发送按钮,信息发送到班级群:传递,强调动作
5.一会儿功夫,显示30人已读:共享,多人接收
6.张三不是团员,自动忽略该条信息:价值
7.十点团支书说被盗号了,不用交团费:真伪

单选:上述小例子
简答:大例子,特征答全
口诀:普传功夫真驾驶

2.信息技术概述

2.1信息技术含义(考频极低)

信息技术:简写IT,是在信息的获取、整理、加工、存储、传递和利用过程中所采用的技术

信息技术特指某一种技术×,所采用的都算,不是一种
信息技术就是利用计算机来解决问题的技术×,未提到计算机
信息技术是在计算机出现前就已经存在

2.2信息技术发展史(选+简答)

1.语言的产生和应用猿到人的标志

自从有了人就有了IT,

2.文字的发明和使用首次超越时间和空间限制
3.印刷术和造纸术的发明和应用:中国最早,书籍出版
4.电报、电话、广播、电视等电信技术的发明和应用进一步突破时间和空间限制
5.电子计算机和现代通信技术的应用:进入数字化信息时代
口诀:语文印电计

3.信息的获取

3.1获取过程(选+简答)

确定信息需求—确定信息来源—采集信息—保存信息—评价信息

  • 不一定是单向的,可能是反复的(哪一步行不通倒回来)
  • 首要一定是需求分析

关于保存信息

人工管理、文件管理(树形结构)和数据库管理

3.2获取方式

搜索引擎的分类:(只记忆前2个)
A:服务器端,B:用户端

step1是搜索引擎自发的行为,只记忆百度、谷歌即可


step1是人工的行为,只记忆除了百度、谷歌

元搜索引擎:无本身数据库,只提供界面,从其他搜索引擎里面搜索(如360搜索)

3.3搜索引擎使用技巧

1.提炼搜索关键词:提炼具有代表性和指示性的关键词

找“有关秦朝历史文化的资料”,关键字:“秦始皇”、“兵马俑”

2.细化搜索条件:条件越具体越精确,可输入多个关键词

找“中国戏剧中京剧的服饰及脸谱知识”,搜索条件:“京剧”、“脸谱”

3.用好逻辑符

4.强制搜索:加英文双引号,用来查找专有名词

只了解信息与信息技术的相关知识,搜索条件:“信息与信息技术”
不加双引号,可能信息 与 信息技术 是2个词而非绑定在一起

4.信息的表示与编码(必考,重点)

4.1计算机的数制/进制

正:5进制——半斤八两:16进制

数码:每一位上可能的取值,N进制数码0~N-1
基数:N进制的基数就是N
位权:10进制的111,每一位上的1大小不一样,从小数点开始看起

16进制A-F不区分大小写,10进制的D可以不写

口诀:2B 欧巴 DISS 好十六

4.2非10进制转换为10进制

按位权展开,然后将展开式求和
可以先把基数写上,之后再去补次方,以小数点为界,从右往左补

科三1-1/1-2图片

8421法

4.3十进制转换为非10进制

整数部分:除基取余,逆向取余直到商为0

例1:10转2

例2:167D=()B
167÷8=20……7
20÷8=2……4
2÷8=0……2
答案:247

例3:167D=()H
167÷16=10……7
10÷16=0……10
答案:A7

小数部分:乘基取整,顺序排列

  • 用基数乘十进制小数,可以得到积,将积的整数部分取出
  • 再用基数乘余下的小数部分,直到积中的小数部分为零,或者达到所要求的精度为止
  • 然后把取出的整数部分按顺序排列起来,即是小数部分N进制
  • 最后将整数部分和小数部分合并起来,即是一个N进制小数

例如:将12.125转换为二进制
图:科三1-3

例2:
167.3125D=()B
0.3125*2=0.625整数部分0
0.625*2=1.25整数部分1
0.25*2=0.5整数部分0
0.5*2=1整数部分1
整数.0101
答案:10100111.0101

例3:0.3125D=()B
0.3125*8=2.5整数部分2
0.5*8=4整数部分4
答案:.24

例4:0.3125D=()H
0.3125*16=5
答案:5

4.4N进制之间的转换

可以都转为10进制作为桥梁
2转8:3位合为1位,以小数点为界,不够3位补0

  • 421原则:

8转2:1位拆为3位

  • 逆向421:
  • 23.04:2在(421)里面就是2(010),3在(421)里面就是(011),4在(421)里面就是(100)

2转16:4位合1位

  • 8421法:同421

图:科三1-4

16转:1位拆4位

  • 逆向8421法

4.5数据及信息数字化

数据:数值、字符、图形、图像、声音和视频等
在计算机内任何形式的数据都用二进制数表示

  • (bit、b):存放的1位二进制数,是数据的最小单位
  • 字节(Byte、B):由8个二进制位组成,是存储的基本单位
  • 1B=8b
  • 1KB=1024B
  • b—B—KB—MB—GB—TB

信息数字化:将数据转化成二进制表示(将高低电平转换为0.1表示)

4.6二进制数的运算

逻辑运算
&:全1为1
|:全0为0
~:取反
异或^:不同为1

算术运算

$(1001)_2 + (1011)_2=10100$ 逢2进1
$(1101)_2 - (1011)_2=0010$ 借1当2
$(111)_2 × (110)_2=101010$ 类似10进制
$(111011)_2 ÷ (1011)_2=101.XX$ 类似10进制

模2运算:不进位、不借位。可以当做异或
一般模2运算都会在题目中提示

$(1001)_2 + (1011)_2=0010$
$(1001)_2 - (1011)_2=0010$
$(111)_2 × (110)_2=$
$(111011)_2 ÷ (1011)_2=110……1$

在模2除里面,只管位数,不管大小:1011÷1101依然可以商1,除数左边的0都要先舍去

5.数据编码

真值:带正负号的二进制数
机器数:符号化后的二进制数(原反补码)

数据在计算机内部是以补码(占8位)的形式储存的, 所有数据的运算都是以补码进行的

5.1原码

正数的原码、反码和补码都是它的二进制数

二进制的最高位为符号位

0代表正数1代表负数

负数的原码:先不看负号,写出二进制数,之后将该二进制数的最高位变为1
逆向转换:原码= 反码最高位不变, 其它位取反

题目类型:知道原码求补码 < 知道补码反推原码

5.2反码

负数反码:是将原码除符号位以外的其它位,按位取反
逆向转换:负数反码 = 补码-1

5.3补码

负数补码:反码 + 1

-12的原码、反码和补码分别为

1
2
3
4
0000 0000 0000 0000 0000 0000 0000 1100 // 12二进制
1000 0000 0000 0000 0000 0000 0000 1100 // -12原码
1111 1111 1111 1111 1111 1111 1111 0011 // -12反码
1111 1111 1111 1111 1111 1111 1111 0100 // -12补码

5.4ASCII码

表示字符:8位,0+7位其他

只需要背住

空格:32
字符0~9:48开始
A:65
a:94
0-9 < A-Z < a-z

5.5汉字编码

输入码:又称外码,用于输入时使用(常见的各类输入法)
机内码:又称内码,用于内部存储和处理
字形码:用于显示输出

点阵方式:

  • 会表示:假设黑色为0,白色为1,则某行怎么表示?
  • 求16*16点阵的存储空间:存储的基本单位B,16×16÷8(因为1个占1位,故需要除以8)
    矢量方式:缩放不失真

6.计算机新技术及运用(必考)

给例子问运用哪种技术

6.1物联网IOT

物联网:IOT,将任何物品互联网连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络

物联网:物品+连入网+联系(智能处理)。缺一不可
物联网:针对物品——>交换——>人
互联网:针对的是人(人上网)

体系结构:应用层(系统、服务、终端)、网络层(各种网络无线协议)、感知层(物品:能被识别感知)

感知层技术:

  • 传感器技术:将感应到的信息(声音、温度)转换为电信号
  • 射频识别技术:
    • RFID非接触式(没有直接接触芯片,ATM插卡需要对准芯片朝向),ETC通道、饭卡、公交卡、火车刷身份证
    • 无线射频识别:位置信息的获取、定位技术、位置服务方法

网络层技术:

通信技术:短距离无线通信技术和移动通信技术,NFC、5G(无人驾驶、远程医疗)
嵌入式:芯片集成

6.2大数据

b—B—KB—MB—GB—TB—PB
特征:大量(Volume,PB级别)、多样(Variety,文图声)、低价值密度(Value) 、高速(Velocity,变化快)

了解:需求—数据采集—数据加工—数据分析(只考这个)—数据可视化—结果报告
数据分析的方法:

对比分析:不同商品、同一商品的不同时间等
平均分析:一段时间内的平均值

6.3云计算

将计算任务分布在互联网上大量计算机(通常是一些大型服务器集群)构成的资源池中,并将资源池中的资源(计算力、存储空间、带宽、软件等)虚拟成一个个可任意组合的按需付费的服务,然后以服务的形式提供给用户使用。

享受到各种计算机服务—云计算

服务类型:

基础设施即服务:iaas,只提供厨房
平台即服务:paas,提供厨房+菜
软件即服务:SaaS,提供预制菜

6.4人工智能AI

人工智能:AI,感知、思维、学习、行为
技术:

  • 1.模式识别:感知,人脸识别、图片提取文字、拍照翻译
    字符识别OCR、语音识别、图像识别(刷脸支付)、生物识别(概念大,指纹、虹膜、人脸)
  • 2.机器翻译
  • 3.专家系统:基于知识的系统,适用于某个特定的领域
    与聊天机器人不同在于:动了脑子(有自己的推理机制)
  • 4.机器人(实体):扫地、指引
  • 5.智能代理“office小助手、产品推荐
  • 6.机器博弈:深度学习。3人联机斗地主(错)、斗地主托管(算)

人工智能、大数据、物联网、云计算是相互依存的,一个产品可以运用多个技术

6.5虚拟技术

虚拟现实VR

逼真的实体(假的) + 可交互 + 借助设备
特点(“3I”特征):沉浸性、交互性、构想性

增强现实AR:

现实基础 + 虚拟内容:扫五福,扫卡片出现动物(可以转动、声音)

计算机系统基础

计算机概述(了解)

诞生:1946年,美国
发展:划分标准,电子元器件不同,(考划分标准和对应关系)

记忆:字数、笔画越来越多

字长(32位、64位,计算机一次处理的字长)决定运算精度
巨型机、大型机、小型机、微型机(一般的PC):按性能分而不是体积分

应用领域:一般考根据例子选计算类型、考特点4字

科学计算:数值计算,大,早
数据处理:非数据处理,多,广

以下领域仅了解

过程控制:实时监控,恒温箱
计算机辅助:辅助设计CAD、辅助制造CAM、辅助教学CAI

计算机系统(单选+简答)

计算机工作原理:冯 · 诺依曼工作原理(选+简答)口诀:521

(1)计算机由运算器、控制器、存储器、输入和输出设备五大硬件部分组成。
(2)计算机内部采用二进制表示数据和指令。
(3)计算机采用存储程序和程序控制的工作方式

核心:存储程序和程序控制

计算机的工作方式/工作过程:口诀:1+1=2

原始数据(1+1),通过输入设备输入存储器,通过运算器计算,结果为2,通过输出设备(显示器)来显示结果在整个流程里面,怎么知道该进行哪一步了?:控制器来控制各个部件的工作

  • 组织答案:通过键盘等输入设备,将原始数据输入到存储器里面,由运算器参与运算,并将结果再次传入到存储器里面,通过输出设备将结果显示输出,在整个过程中由控制器来同一协调各个部件的工作
  • 控制器和各个部件都有联系

计算机的组成:简答题就将下图组织成为文字分段落作答
硬件:躯壳,软件:灵魂

主机≠主机箱

CPU

中央处理器CPU:考中英文、组成、指标(3+1),外观(方正)

组成部件:控制器运算器(算术、逻辑运算)
性能指标:主频(决定运算速度,Hz)、字长(决定运算精度b)、内核数(双核也只有1个CPU,2个芯片内嵌到1个CPU里面的)
Intel® Core™ i9-9980HK CPU @ 2.50GHz:Hz前面那一串都是CPU厂商规格

存储器:考红字

新建的word正在编辑:内存保存好后的word:辅存
打开已经保存的文件:外存 —> 内存 —> CPU

内存(主存):

  • 随机存储器(RAM)可读可写,断电数据丢失
    • 正编辑的word,电脑没电了,来电后数据依然没有
    • 高速缓存cache:用于解决CPU运行速度与内存的访问速度不匹配问题(速度:CPU >> 内存 > 外存,常用的先放在缓存里面,介于CPU和内存中间)
      • 内存条:DDR2、DDR4等,外形:长条
  • 只读存储器(ROM)只能读不能写,断电数据不丢失
    • 存储系统已经写好的东西:开机界面
      • BIOS芯片

外存: 考法:给名字判断是否为外存

软盘(A、B盘,保存的图标就是这个)
机械硬盘(HDD,参数:转速,7200转)
固态硬盘(SSD)
移动存储设备(USB)
光盘

输入设备:鼠标、键盘、扫描仪
输出设备:显卡、显示器、打印机

系统主板

系统主板:

  • 先找方方正正的部分:CPU
  • CPU的右边:长条状,放内存条,内存条下面中间的空对准长条区域的卡扣(图上:长得像螺帽)
  • CPU的下面:长条状PCI插槽,一般放网卡、显卡
  • SATA接口:硬盘接口
  • 黑色的、小的:离CPU近,给CPU供电,pin
  • 黑色的、大的:主板供电

南北桥是进行信息交互的

外部接口

常见外部接口:

USB接口:给1个口,分出ABC

多媒体接口:认识即可

VGA接口:淘汰(老台式机),D型接口
DVI接口:高清接口,只传画面,无法传声音,一个一个方形孔
HDMI接口:主流,T型接口
DP接口:一边有弧度

总线(选择题)

一般考含义

数据总线DB:传输数据
地址总线AB:传送地址
控制总线CB:传送信号
传入一个数据2(DB),把2传到哪里(AB),什么时候开始传输(CB)

计算机软件系统(选择题)

系统软件:

操作系统:只有硬件没有软件的叫裸机
语言处理系统:C、PYTHON——>机器语言
数据库管理系统:DBMS
服务程序

应用软件:

通用软件:QQ
专用软件:公安机关


人机交互的接口在用户和应用软件之间

第二章:信息和计算机基础

1.多媒体技术的概念

  • 存储信息的实体:磁带、磁盘、光盘、纸张
  • 信息的载体:文字、声音、图形、图像、动画、活动影像

1.1媒体的分类(选+简答)

感觉媒体:五官可以感受到:文字、图像、声音
表示媒体:补码、ASCII码、机内码

听到好听的声音(感觉)—>录下来(录:表现。存:存储、表示)—>分享给他人(传输)—>别人听见(感觉、表现)

1.2多媒体、流媒体

多媒体:

1.对文本、图形、图像、动画、声音和视频等多种媒体(载体而非设备)进行综合处理,构成一个交互的统一整体

2.老式电视机:有多种媒体,但是不能交互,只能被动接受
3.网络电视:可以快进(交互)
4.考题:多媒体(技术),实例(>= 2个,看是否有人机交互)

5.多媒体=多媒体技术

流媒体:

1.不是某一种媒体,而是一种传输的技术/方式

2.流式传输、边下载边播放

2.多媒体计算机系统

2.1硬件系统(选择题,考转换)

主机:基本硬件(CPU、存储、输入输出)
常见输入输出:话筒、摄像机、显示器、音响等
大容量存储设备
音频部分:A/D转换(模拟转数字)、D/A转换(数字转模拟)

计算机能识别的叫数字信号,人耳听到的连续的叫模拟信号
声音采集设备:声卡
D:data

视频部分:CCD(光学转电)

视频采集设备:采集卡

2.2软件系统

多媒体操作系统:苹果、安卓
多媒体开发工具:(选+简答)给软件,认识是哪种,软件写全拼

(1)文字编辑软件:Word、WPS、记事本、写字板
(2)图形图像处理软件: Photoshop、Illustrator、CorelDRAW、美图秀秀、画图
(3)音频采集与编辑软件: GoldWave、Audition(Cool Edit)、录音机
(4)动画制作软件: Animate(Flash)、3ds max、Maya、Cool 3D
(5)视频处理软件: Premiere、After Effects、剪映
(6)多媒体创作软件: Authorware、PowerPoint
(7)多媒体播放工具:QQ音乐、网易云音乐、迅雷看看

2.3多媒体格式

类型:

多媒体开发工具:(选+简答)给软件,认识是哪种,软件写全拼

①文本格式:.txt记事本/doc/wps/pdf/html
②图形图像格式:.psd/gif动态/jpg/jpeg/png透明/tif扫描仪/wmf剪贴画/ai软件illustrator/cdr软件CorelDRAW/bmpWin自带的画图
③音频格式:.mid记录乐器的声音
④视频格式:.3pg已被淘汰/dat为VCD的格式
⑤动画格式:.ma为Maya格式/mb为Maya格式/flaflash源文件格式/swfflash成品导出格式/flc软件Animate

音频:audio,格式一般都带有a,wav:wave波形
视频:video,格式般都带有v

3.多媒体数据的压缩和解压缩(考频低)

目的:查找和消除信息的冗余量 ,节省存储空间
分类:无损压缩、有损压缩

无损压缩:(能还原):没有信息损失,主要用于压缩文本数据

有损压缩(不能还原):有一定的失真,主要用于压缩语音、图像和视频数据,比如音乐的标准和无损规格

标准:JPEG标准针对静止图像,MPEG标准针对活动图像(JPEG/MPEG既可以作为图像/视频的格式,也可以作为标准)

4.图形图像基础

图像—数字化成2进制—存储

4.1图形图像概念

图像:位图,外界拍摄
图形:矢量图,构造的(临摹也算)
像素=色块

考点:①选择题:红框②简答题:记忆3-4条特点即可

4.2图形图像数字化

概念:数字图像(类似汉字点阵图,外部为锯齿而非连续圆滑线条)

1.模拟图像:连续
2.数字图像:不连续
3.图像数字化:将模拟图像转数字图像的过程

数字化过程:(简答题)

1.采样:对图像在水平和垂直方向上等间距地分割成矩形网状结构(像素点
2.量化:指要使用多大范围的数值来表示图像采样之后的每一个点
3.编码:将经过上述两步处理之后的信号值转换成数字符号(2进制)的过程

4.3图像文件大小

分辨率:

图像分辨率:
图像在宽和高方向上的像素量
长×宽
屏幕显示分辨率:1920x1080
显示器屏幕的水平和垂直方向上显示的像素点数量

颜色深度:

图像中每个像素所占的二进制位数(bit)
n位可以表示2n种颜色(RGB-24位,1种颜色占8bit)

文件大小:大小B=图像分辨率×颜色深度÷8

B= px * px * bit ÷ 8
很大的B还需要转换成KB、MB等更大的单位

5.音频

5.1声音的基本概念

物理概念:

振幅:上下端点的距离
周期s:
频率Hz:1/周期

分类:

次声波:频率<20Hz
可听声:20~20000Hz
超声波:频率>20000Hz

声音3要素:

音调:与频率相关
响度:分贝dB,与振幅相关,振幅越大响度越响
音色

声道:

单声道、双声道(立体声)、多声道
音色
但凡提到立体声,都当做2声道处理

5.2声音数字化

模拟音频和数字音频:.存储:A/D转换播放:D/A转换

模/数转换:(简答题)

  • 采样:在横轴上按一定的时间间隔从声波信号中取一个振幅瞬时值。 采样频率 (Hz)(每秒取点几次)
  • 量化:将纵轴划分为若干区间,并将采样点取整(更接近哪个整数点)得到其量化值。 量化位数(bit):分成4格,量化位数就是2(4=$2^2$),8格时量化位数=3,位数越高,音质越好
  • 编码:通过编码形成可以在计算机中存储和处理的二进制数据(数字音频 )比如把4=100,3=011

5.3音频文件大小

存储的基本单位一定是B
音频文件大小(B)=采样频率(Hz)×量化精度(bit)×声道数(1或2)×时间(s)÷8
音频文件大小(B)=音频码率×时间÷8

音频码率:bps,每秒传二进制位bit÷s,又叫做比特率
看好音频码率单位:mkbs,kbps,1kbps=1024bps

5.4GoldWave软件基础

stereo:双声道
mono:单声道

上面的是左声道,下面的是右声道
已选中的是左声道,蓝色的是已选中的范围(10s-20s,共10s)
蓝色中间的小三角:光标所在位置
长度:左声道共40s,下面的是缩放
格式描述:16bit,赫兹、比特率、声道等信息

6.Photoshop基础(必考,选择题)

6.1初识(了解)

颜色模式:(字母对应颜色,RGB表示,区分灰度位图,位数)

①RGB颜色模式:Photoshop默认、显示器默认,红绿蓝,量化位数颜色深度占24bit(每一个占8位,0表示无色)
红色(R:8个1,G:8个0,B:8个0)=(255,0,0)=16进制(FF,00,00)=FF0000
白色:(255,255,255)=#FFFFFF
黑色:(0,0,0)
②CMYK颜色模式:印刷模式,C(青色)、M(洋红)、Y(黄)、K(黑色)
③灰度模式:8位表示黑色(全0)、白色(全1)、不同级别的灰度(中间1-254,高光、阴影),黑白照片
④位图模式:1位表示,黑色,白色(无灰色)

6.2图层(极高)

至少有一个图层,无论是什么图层,不可以被删除
普通图层:最基本图层,编辑图像
背景图层:①背景二字、最下方、加锁(缺一不可)②不可添加样式和蒙版③可转为普通图层

文字图层:①T②只存放文字③可转为普通图层(通过栅格化)

1.选择图层:操作前,首先要先选中图层,选中的被称为当前图层
2.复制图层:拖至“新建图层”按钮
3.删除图层:拖至“删除图层”按钮
4.调整图层顺序:拖动即可
5.隐藏和显示图层:“眼睛”图标
6.锁定图层:可以调整图层顺序,当前图层不止一个时,可被删除

锁定透明像素:①+④禁止在透明区绘画:
锁定图像像素:②+④禁止编辑图像
锁定位置:③+④禁止移动图像
锁定全部:只④禁止进行任何操作
普通图层+锁+不止一个图层:不可删
背景图层+锁+不止一个图层:可删

7.链接图层:标志“链条”、可对链接图层同时操作(移动、旋转、放缩),不能一起删

8.合并图层:将多个图层合并成一个图层
9.图层组
10.图层样式:选中图层->fx

上图选中的是投影和内阴影(左边),但是图上只能看见内阴影(右边投影没有眼睛),注意每级的总开关(眼睛是否开着)

是否设置了样式:看fx
图层效果:看缩进
修改是否受限:前面小,中间内容受限,依然可以上下移动图层
效果可见:看2个眼睛(效果前面+总开关前的眼睛)
常见样式:投影、描边、浮雕
复制样式到其他图层:其实是样式替换(覆盖了原本的样式)
删除图层:仅一个图层不能删,未加锁可以删除(包括背景图层)

6.3选区(高)

选图像的局部:蚂蚁线

选框工具

矩形选框工具:用于创建规则的矩形或正方形选区
椭圆选框工具:用于创建规则的椭圆或正圆选区
单行/单列选框工具:在图像的水平方向选择一行/垂直方向选择一列像素

选区运算:B变大,CD变小,新选区,添加到选区,从选区减去,交叉选区

羽化:边缘柔和
消除锯齿:边缘平滑,针对“椭圆选区”,先设值,再框选区

套索

套索工具:创建任意形状的选区(鼠标跟着画)
多边形套索工具:创建棱角分明边缘呈直线的多边形选区(点AB2点,自动连成直线)
磁性套索工具:创建沿着图像边界的选区(自动吸附鼠标)

魔棒

魔棒工具:选取图像中颜色相同或相近的区域。
容差:容差越大,选择的精度越低,选取的范围也越大(理解为所需RGB值±范围内的)

编辑命令

反选选区:要将当前图像中的选区与非选区进行相互转换
扩大选取:可选择与原有选区颜色相近且相邻的区域
选取相似:可选择与原有选区颜色相近的区域(包括不相邻的)

扩展、收缩、边界、平滑选区
变换选区:对已有选区进行缩放、旋转和变形等操作
选区描边:沿选区边缘描绘指定宽度的颜色

6.4图像编辑

调整大小和剪裁,旋转和翻转画布
裁剪:

裁剪工具:对图像进行任意裁剪,重新定义画布的大小
透视裁剪工具:可以修复图像中的透视畸变(近大远小)

6.5图像的绘制、修复、修饰


画笔工具:类似毛笔,边缘柔和
铅笔工具:棱角分明
颜色替换工具:替换指定颜色
仿制图章工具:将取样点(ALT+鼠标)的图像区域复制到笔刷位置
图案图章工具:用系统自带的或者用户自己定义的图案绘画
橡皮擦工具:若在背景图层上擦除图像,被擦除区域将使用背景色填充;想若在普通图层上擦除图像,被擦除区域将使用透明色填充
背景橡皮擦工具:有选择地将图像中与取样颜色相近的区域擦除成透明效果
魔术橡皮擦工具:魔棒+橡皮擦
污点修复画笔工具:利用周围像素对污点遮盖进行修复 ,无需取样
修复画笔工具:利用指定的取样点或预先设置好的图像来修复图像中的缺陷
修补工具:基于选区修复图像(类似于仿制图章,把取样点内容复制到笔刷处)
内容感知移动工具:将选中的对象移动到其他区域后,可以重组和混合
红眼工具:用于修复相片中的红眼现象

6.6图像的色彩和色调

(一)色阶命令(考频极低):通过调整图像的暗调(0)、中间调(1-254)和高光(255)的强度级别来校正图像

PS颜色为RGB模式,一种颜色占8位,0-255
调节每种颜色的通道灰度:暗调0,高光(该色鲜艳255),中间调

(二)曲线命令:在曲线上增设锚点,灵活调整图像(调色之王)
(三)色调调整:

亮度/对比度:一次性调整图像中所有像素的亮度和对比度
曝光度:用于提高图像局部区域的亮度

上述都能调整颜色、色调,灵活性:亮度/对比度<色阶<曲线

(四)颜色调整:

参数:
色相:即色彩的相貌和特征。即色彩的名字
饱和度(纯度):指色彩的鲜艳程度或纯净程度,纯度越低颜色越黑
明度(光度):指色彩的亮度或明度
1.色相和饱和度:
2.色彩平衡:快速调整偏色的图片
3.去色:将彩色图像(RGB)转换为灰色图像(灰度模式)
4.黑白:将彩色图像转换为灰色图像,并可调整黑白图像的色相和饱和度以及单个颜色成分的亮度等
5.反相:将图像的颜色进行反相,以原图像的补色显示
6.阈值:可将一个灰度或彩色图像转换为黑白两色图像(位图模式),设置一个阈值,像素>阈值=白色,像素<阈值=黑色

6.7蒙版(较高)

图层蒙版:左右排列,右侧为填充色:仅黑、白、灰三种,黑遮白显

标志:链条+黑白灰
填充黑色的区域表示该层图像内容被完全遮挡
填充白色的区域表示该层图像内容被完全显示
填充灰色的区域表示该层图像内容半透明显示

矢量蒙版:左右排列,右侧为矢量图形,外遮内显

图形的区域表示该层图像内容被完全遮挡
图形的区域表示该层图像内容被完全显示

剪切(剪贴)蒙版:上下排列,上内下形

显示上方图层的内容
显示下方图层的轮廓(形状)

7.计算机动画基础

Flash工作界面:

7.1工具箱

画线条:粉色类
画形状:蓝色类
改变形状:绿色类。可以选整体,也可以选部分。直接拖会拖动出弧形,拖动出直角+ALT/CTRL
上色:黄色类。边缘上色用墨水桶,内部上色用颜料桶

7.2时间轴

帧类型:时间轴上的每一个小方格代表一帧。考点:①3类②标志③有无内容。图一第23帧非普通帧无内容

1.关键帧:实心圆点,有内容
2.空白关键帧:空心圆点,无内容
3.普通帧:灰色背景,有内容

帧速率:每一秒中播放的帧数(fps)默认的帧频为12fps

长方形白块:前一个(空白)关键帧结束的位置

7.3图层

概念:透明玻璃,相互独立,相互作用

图层的基本操作:

1.选择图层:选中的图层为当前图层,看图层栏颜色+铅笔图标
2.隐藏和显示图层:看眼睛这一列。小鸟图层不可见,老鼠猴子可见
3.锁定图层:看锁这一列
4.删除图层:仅一个图层不可删除,其余均可删除图层(无论是否加锁)
5.修改图层内容:①当前图层②未隐藏③未加锁
了解:最右边方块列:边缘、内部是否填色

7.3元件和实例(重点)

元件(演员):在库中存放文件(类)
实例(角色):在舞台中,是元件的引用(对象,一个元件可以拖成多个实例)

区别:元件修改,实例自动跟着修改。实例修改,元件不会跟着修改

元件类型:考点①类型②图标③说明

按钮元件:

弹起:鼠标不靠近的状态
经过:放在按钮上
按下:按下按钮
点击:表示按钮范围,与按下不一样,可以为空,默认大小。例子为按钮范围变小
波形:表示有声音,波形在哪表示声音在哪步,直线也是波形

左图:鼠标未靠近,为蓝色,鼠标开始经过还是蓝色(按钮范围比矩形小),鼠标往里走点图标变绿,点击变为红色。若按钮设置得比矩形大,还没到矩形,矩形就变绿

7.4动画类型(重点)


考点:①选择题:红字部分②简答题:特点

逐帧动画:每一帧都是关键帧,无箭头,①8帧图片②一个动图(8帧)

动作补间动画(传统补间):

①仅2个关键帧(首尾)
②首尾帧均需要为一个整体/元件:框起来+中心点=一个整体,当做一个元件
③适合场景:以整体为单位去做变化,如放缩旋转,形状不能改变(圆与椭圆算一个形状)
④时间轴上的实线箭头:普通帧,计算机自动补齐(虚线箭头:动画失败)
⑤时间轴中间帧的背景颜色:淡蓝/紫色
⑥选动画补齐

形状补间动画:

①仅2个关键帧(首尾)
②首尾帧均需要为一个分离对象:看小点点而非方框
③适合场景:以整体为单位去做变化,如放缩旋转,形状不能改变(圆与椭圆算一个形状)
④时间轴上的实线箭头:普通帧,计算机自动补齐(虚线箭头:动画失败)
⑤时间轴中间帧的背景颜色:淡绿色
⑥选形状补齐

路径引导动画:沿给定轨迹运动

1.至少两个图层(①引导层画路径在上和②被引导层做动画在下)
2.播放时,引导层不可见
3.中间动画:动作补齐(方框中心与轨迹重合)

遮罩动画:

上方图层:动作补齐,方形变圆

1.至少两个图层(遮罩层和被遮罩层
2.播放时,遮罩层显示轮廓,被遮罩层显示内容

7.5动画脚本命令(选择)

创建对象:关键帧、影片剪辑、按钮实例

标志:α


4个关键帧,仅第二个创建了脚本命令

脚本格式:

1
2
3
on(鼠标触发事件){    
要执行的语句;
}

鼠标触发事件:press按下;release松开;rollover滑过;rollout滑离

常见的控制函数:

play():播放
stop():停止

stopAllSounds():停止所有声音
nextFrame():跳转到下一帧 prevFrame():跳转到上一帧
gotoAndPlay(scene,frame):跳转到指定的场景和指定的帧,并开始播放
gotoAndStop(scene,frame):跳转到指定的场景和指定的帧,并停止播放

第三章:Python

1.初识

第三章:Python

1.初识

#hexo更新

命令行交互式环境:直接执行,单位是行,标志>>>
PyCharm编辑器:单位为文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/634776f01f71d53e87e5df9f75acffc5.png#pic_center =700x150)
变量、常量、数据类型、运算符和表达式、函数、字符串、注释
没有分号,变量不用事先定义

2.变量

变量的命名(单+简答)
1.变量名只能由字母、数字和下划线组成
2.字母区分大小写
3.第一个字符必须是字母或下划线,不能是数字
4.不能使用Python 的关键字(保留字)

3.数据类型

整型int

考①整型是int②进制-前缀-某变量合法性(2进制+0x)③默认输入输出10进制

1
2
3
4
5
6
7
8
9
a=11
b=0b11
c=0o11
d=0x11

print('a=',a)//11
print('b=',b)//3
print('c=',c)//9
print('d=',d)//17

打印:默认10进制

浮点型float

必有小数点,没有double
十进制形式:由数值(0-9)和小数点组成; 前可省、后可省、前后不可同时省

1
2
3
4
a=.3
b=1.
c=1.3
d=.//报错

指数形式:由数值和字母e组成; 前后必有数,后必为整数

1
2
3
a=1e3 # 1* 10^3 = 1000,注意是1000.0
b=1e-3 # 1 * 10^-3=0.001
c=1.3e1 # 1.3 * 10^1 = 13.0

即便数字为整数,依然要在后面加上.0,如1000.0而非1000

布尔类型bool

只有两个值:True、False(注意首字母大写)

字符串string

无字符类型char
一对引号括起来(单双均可):'33'="33"
字符串里面有单引号,外面用双引号;里面有双引号,外面用单引号
字符串里面单双引号均有:用转义字符

转义字符,以\开头,\':单引号;\":双引号;\n:回车换行

数据类型转换

考①函数结果:问输出②参数类型:合法性int('3.2')非法

整数字符串:简称整串

赋值

单个变量赋值:变量名 = 值
多个变量赋值:

①通用:多值多变量,用逗号
②特殊:等值多变量,用等号

1
2
3
a=b=c=1  # 连等
a,b,c = 2,2,2
a,b,c = 3, 0.3,'3' #按顺序,一一对应

4.算术运算符

python无++、--
加法+,减法-,乘法*,模(求余)%,幂(求次方)``
除法/:精准除( 除以),结果为浮点数
整除(求商)//:结果为整数
优先级:幂 > 负号(和数学一样) > 乘、除、商、余 > 加、减(类似数学)

5.赋值运算符

格式:变量名= 表达式
优先级:算术> 赋值

复合赋值

1
+=  -=  *=  /=  //=  %=  =

6.关系运算符

1
>	>=	<	<=		!=

结果:True(真)、False(假)

执行:
全部为关系运算符,则依次看每段的结果,全真为真,有假为假
若有其它运算符,则按优先级顺序执行。算术 > 关系(相同) > 赋值

1
2
3
4
5
6
7
8
9
a,b,c=1,1,2
print("a>b is ",a>b)#a>b is False
print("ab is ",ab)#ab is True
print("c>a>b is ",c>a>b) #c>a>b is False,同数学一致,先看c>a(T),再看a>b(F),结果为F
print("c>a>=b is ",c>a>=b)#c>a>=b is True
print("ac>b is ",ac>b)#ac>b is False
print("a<=b+c is ",a<=b+c)#a<=b+c is True
a=b>c
print("a is ",a)#a is False

7.逻辑运算符

逻辑与and

不是&
数值0为逻辑假(False),非零值为逻辑真(True)
遇到最后时,结束运算,结果是其表达式的值

1
2
3
4
5
6
7
a,b=3,0
print(a and b) #0,在b这里结束,返回的是b的值
print(a>b and a<b) #False,返回a<b的值
print(a>b and a+b+1) #4,在a+b+1这里结束,返回的a+b+1的值
print(b and a) #0
print(a<b and a<b) #False
print(a<b and a>=b) #False

逻辑或or

不是|
数值0为逻辑假(False),非零值为逻辑真(True)
遇到最后时,结束运算,结果是其表达式的值
优先级 and>or

1
2
3
4
5
6
7
a,b=3,0
print(a or b) #3,a为真,结束,返回a的值
print(a>b or a<b) #True
print(a>b or a>=b) #True
print(b or a) #3
print(a<b or a<b) #False
print(a<b or a+b-1) #2

逻辑非not

数值0为逻辑假(False),非零值为逻辑真(True)
结果是取相反的逻辑值

1
2
3
4
5
a,b=3,0
print(not a) #False
print(not b) #True
print(not a+1) #False
print(not b+1) #False

8.成员运算符in/not in

in:在y中找到x的值返回True,否则返回Falsex in y
not in:在y中未找到x的值返回True,否则返回Falsex not in y

1
2
3
4
5
6
a,b,c='1','5','CD'
s="123CDE"
print(a in s) #True
print(b in s) #False
print(c in s) #True
print(c not in s) #False

9.身份运算符is/not is(极低)

is:如果x和y引用的是同一个对象则返回True,否则返回Falsex is y
is not:如果x和y引用的不是同一个对象则返回True,否则返回Falsex is not y

``:判断的是值是否相等
id(变量):返回的是内存地址,若内存地址相同,即为同一个对象

算术>关系>逻辑>赋值

10.位运算符

在计算机内通过补码运算:
10的补码:0000 1010
23的补码:0001 0111

与的补码:0000 0010,也是补码,为2
或的补码:0001 1111,为

1
2
3
4
5
6
7
8
a=10
b=23
print(a&b) #2
print(a|b) #31
print(a^b) #29
print(~a) #-11
print(a<<2) #40
print(a>>2) #2,右移缩小2^2=4倍,10/4=2(取商不要余数)

输出是10进制

11.输入输出

输出print

引号内的内容:原样输出
各项信息之间,逗号隔开
print默认换行,可使用end=""实现不换行

1
2
3
4
5
6
7
8
9
10
11
12
13
a=10
print("输出a的值")# 输出a的值
print("a= ",a) # a= 10

print("输出a的值",end="")
print("a= ",a) # 输出a的值a= 10,未换行

print("输出a的值:",end="end后面可以输入任何内容")
print("a= ",a) # 输出a的值:end后面可以输入任何内容a= 10

print("a=",a,"\n输出完毕")
#a= 10
#输出完毕

格式化%

第一部分:引号内

必有%和格式字符,且%个数与第三部分变量个数一致

第二部分:%
第三部分:变量

多个变量必须要加括号,单个变量可以不加括号

整型:先看格式字符-再看宽度-对齐-补位

1
2
3
4
5
6
7
a=15
print("a=%d" % a) #a=15,
print("a=%5d" % a) #a= 15,最小宽度5 > 实际位数2,省略表示右对齐
print("a=%05d" % a) #a=00015,
print("a=%-5d" % a) #a=15 ,默认空格补齐
print("a=%o" % a) #a=17,
print("a=%X" % a) #a=F,

浮点型:%f默认6为小数,宽度里面,小数点也占一位,先看精度再看宽度

1
2
3
4
5
b=1234.5678
print("b=%f" % b) #b=1234.567800,
print("b=%8.2f" % b) #b= 1234.57,
print("b=%-4.2f" % b) #b=1234.57,
print("b=%.2f" % b) #b=1234.57,

字符串型:

1
2
3
4
5
6
7
s1="I"
s2="I love You"
print("s=%c" % s1) #s=I,
print("s=%s" % s1) #s=I,
print("s2[3]=%c" % s2[3]) #s2[3]=o,
print("s=%10s" % s2) #s=I love You,
print("s=%.5s" % s2) #s=I lov,此时.10无意义,小数点后面是截取不是补位

格式化format

浮点型:

1
2
3
4
5
6
7
8
9
10
11
12
## 无格式说明
print("先是{},再是{}".format("第一个参数","第二个参数")) #先是第一个参数,再是第二个参数
print("先是{1},再是{0}".format("第一个参数","第二个参数")) #先是第二个参数,再是第一个参数


## 有格式说明,此时必有冒号
b=123.45678
print("b={0}".format(b)) #b=123.45678,
print("b={0:f}".format(b)) #b=123.456780,
print("b={0:8.2f}".format(b)) #b= 123.46,
print("b={0:4.2f}".format(b)) #b=123.46,
print("b={0:.2f}".format(b)) #b=123.46,

字符串型:

1
2
3
s="I love you"
print("s={0}".format(s)) #s=I love you
print("s={0:.5}".format(s)) #s=I lov

对比:

1
2
3
4
5
a=23
b=45.678
c="hi"
print("a=%d,b=%.2f,c=%s"%(a,b,c)) #a=23,b=45.68,c=hi
print("a={},b={:.2f},c={}".format(a,b,c)) #a=23,b=45.68,c=hi

输入input

input() 获取的是字符型

1
2
3
4
5
6
7
8
9
10
11
12
13
name=input("请输入您的名字")
print("您的名字是:",name)

# +表示连接
a=input("请输入a的值:") #1,获取的是字符型,实际是'1'
b=input("请输入b的值:") #2
c=a+b
print("两数之和为",c) #12

A=int(input("请输入A的值:")) #1,使用之前的强制转换
B=int(input("请输入B的值:")) #2
C=A+B
print("两数之和为",C) #3

整型:int()
浮点型:float()
整型、浮点都有:eval(),将数串转换为数字,整数就转为int,浮点就转为float

1
2
3
4
5
6
7
8
9
A=float(input("请输入A的值:")) #1
B=float(input("请输入B的值:")) #3.2
C=A+B
print("两数之和为",C) #4.2

a=eval(input("请输入a的值:")) #4
b=eval(input("请输入b的值:")) #3.2
c=a+b
print("两数之和为",c) #7.2

12.选择结构

考:①选择输出②填空③简答:独立编程

格式:①表达式:无括号,有冒号②多条语句:同等缩进
作用范围:冒号后所有缩进。,则执行所有缩进语句块,假,则执行后续语句

例1:编程实现,输入成绩,若≥60分则输出"噢耶"和"及格啦"两行语句;无论成绩如何均会输出"考试辛苦了" 语句

1
2
3
4
5
score=int(input("请输入成绩"))		
if score >= 60:
print("奥耶")
print("及格啦")
print("考试辛苦啦")

还可以连等大于小于:

1
2
3
4
elif 100000<=step<150000:
print("优秀奖")
elif 150000<=step<300000:
print("三等奖")

嵌套:配对原则,看缩进
实现输入三个整数,输出最大值

python无三元运算符

13.循环结构

①选择题(选择输出)②简答题

真(符合条件):执行缩进的语句块,然后返回继续判断条件
假(不满足条件):执行后续语句

while循环

格式:

1
2
3
while 判断条件:
语句块
后续语句

注意事项:

while前有初始状态语句(赋初值)
while缩进中有循环状态变化语句(x+=1),python没有自增/减

求1-100的和

1
2
3
4
5
6
num = 1
sum = 0
while num <=100:
sum+=num
num +=1
print(sum)

for循环

格式:

1
2
for 变量 in range([start,] stop [,step]):
语句块

注意事项:

start:开始值,为0时可省略
stop:结束值,但不包含stop,不可省略,故已知结束值时才可用for循环
step:步长,省略时默认为1,表示依次加几,每次+2则步长为2,里面不需要再i=i+1之类的了
[start,stop-1]范围内循环

例子:

取0~10的每个值,range(0,11,1)=range(11)
取1~10的每个值,range(1,11,1)=range(1,11)
取1~10的每个奇数,range(1,11,2)
取1~10的每个偶数,range(2,11,2)

求1-100的和

1
2
3
4
sum = 0
for i in range(1,101):
sum += i
print(sum)

循环的嵌套使用:九九乘法表

1
2
3
4
for line in range(1,10):
for lie in range(1,line+1,1):
print("{}×{}={}".format(lie,line,line*lie),end=" ")
print() # 一行输出一个换行

14.转移语句

break:提前结束整个循环。通常与if语句一起使用
continue:提前结束本次循环。通常与if语句一起使用

15.序列

分类

字符串、列表、元祖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 赋值
a='hi 123'
b=['hi'," ",1,2.3]
c='hi',"~",1,2.3 #赋值无圆括号,默认许多值放一起叫做元祖

# 输出
print('a=',a) #a= hi 123
print('b=',b) #b= ['hi', ' ', 1, 2.3]
print('c=',c) #c= ('hi', '~', 1, 2.3)


#取值
print(a[4]) #2
print(b[2]) #1
print(c[2]) #1

操作

选择题,了解

  1. 索引查找某一个元素,用来查找某一个元素

索引默认从0开始,负数从-1开始,从右往左数

1
2
3
s='hi~123'
print(s[-2]) #2
print(s[2]) #~
  1. 连接+号,用来做序列的拼接,+前后为同一种序列
1
2
3
4
5
6
7
a='hi 123'
b=['hi'," ",1,2.3]
B=['hi'," ",1,"~"]
c='hi',"~",1,2.3
s='hi~123'print(b+B) #['hi', ' ', 1, 2.3, 'hi', ' ', 1, '~']
print(a+s) #hi 123hi~123
print(a+c) #不同种,报错
  1. 复制*号,用来做序列的复制
    复制后为一个序列而非3个分开的序列
1
2
3
a='123'
print('a'*3) #aaa,
print(a*3) #123123123
  1. 分片(难):查找某一段元素
    格式:序列名[start:end:step],看见中括号+数字+冒号即为分片

start:开始下标,0可省
end:结束下标(不含),尾可省
step:步长,1可省

1
2
3
4
5
6
7
8
s=['a','b','c','de',1,2,3]
print(s[0:7:1]) #['a', 'b', 'c', 'de', 1, 2, 3]
print(s[1:3]) #['b', 'c']
print(s[1:]) #['b', 'c', 'de', 1, 2, 3]
print(s[:3]) #['a', 'b', 'c']
print(s[::2]) #['a', 'c', 1, 3]
print(s[::-1]) #[3, 2, 1, 'de', 'c', 'b', 'a']
print(s[3::-1]) #['de', 'c', 'b', 'a']
  1. 长度len():返回序列中元素的长度(个数)
1
2
3
4
5
6
7
a='hi 123'
b=['hi'," ",1,2.3]
c='hi',"~",1,2.3

print(len(a)) #6
print(len(b)) #4
print(len(c)) #4
  1. 查找最小元素min():查找序列中最小的元素,序列中类型要相同,字符类型根据ASCII码判断大小
  2. 查找最大元素max():查找序列中最大的元素,序列中类型要相同
1
2
3
4
5
6
7
a='hi 123'
b=[7,15,1,2.3]

print(min(a)) # ,空格
print(min(b)) #1
print(max(a)) #i
print(max(b)) #15
  1. 查找序列名.index(sub,start,end),在序列中查找子序列

sub:要查找的子序列
start:查找的开始位置,默认从下标0开始,可省
end:查找的结束位置(不含),默认到序列的结尾,可省
存在,返回位置
不存在,抛出异常

1
2
3
4
5
6
s1='1234jyALG12'
s2='12'

print(s1.index('j')) #4
print(s1.index(s2)) #0
print(s1.index('s2')) #报错ValueError: substring not found
  1. 计数序列名.count(sub,start,end),统计子序列出现的次数

sub:要查找的子序列
start:查找的开始位置,默认从下标0开始,可省
end:查找的结束位置(不含),默认到序列的结尾,可省

1
2
3
4
5
6
s1='1234jyALG12'
s2='12'

print(s1.count('j')) #1
print(s1.count(s2)) #2
print(s1.count('s2')) #0
  1. 遍历:利用while/for循环,借助索引和序列总长度依次遍历
1
2
3
4
5
6
7
8
li=[123,12.3,'jy','alg']
i=0
while i <len(li):
print(li[i])
i=i+1

for i in li:
print(i)

字符串方法

  1. 查找子串find():字符串名.find(sub,start,end),在字符串中查找子串

sub:要查找的子串
start:查找的开始位置,默认从下标0开始,可省
end:查找的结束位置(不含),默认到序列的结尾,可省
存在,返回位置
不存在,返回-1

注意与index区分:

1
2
3
4
5
6
7
8
9
10
11
s1='1234jyALG12'
s2='12'

print(s1.index('j')) #4
print(s1.index(s2)) #0
print(s1.index('s2')) #报错ValueError: substring not found

print(s1.find('j')) #4
print(s1.find(s2)) #0
print(s1.find(s2,2,5)) #-1
print(s1.find('s2')) #-1
  1. 分隔字符串split():字符串名.split(delimiter,num),指定字符为分隔符,从最左端开始将其分隔成多个字符串,并返回包含分隔结果的列表

delimiter:指定的分隔符,默认为空格,可省
num:分隔次数,默认全部分隔,可省

1
2
3
4
5
6
7
8
9
s1='this is an apple'
s2='this_is an_apple'

print(s1.split()) #['this', 'is', 'an', 'apple']
print(s1.split(' ')) #['this', 'is', 'an', 'apple']
print(s1.split(' ',2)) #['this', 'is', 'an apple']

print(s2.split()) #['this_is', 'an_apple']
print(s2.split('_')) #['this', 'is an', 'apple']
  1. 大写转小写lower():字符串名.lower()
  2. 小写转大写upper():字符串名.upper()
  3. 判断是否全部为小写islower():字符串名.islower(),返回值为True或者False
  4. 判断是否全部为大写isupper():字符串名.isupper(),返回值为True或者False
1
2
3
4
5
6
s='1234jyALG12'

print(s.lower()) #1234jyalg12
print(s.upper()) #1234JYALG12
print(s.islower()) #False
print(s.isupper()) #False

列表方法

  1. 列表的赋值:显性赋值、隐性赋值
1
2
3
4
5
6
7
8
list1=['007',"张三",'996']
list2=list1
print(id(list1)) #1537316962432,
print(id(list2)) #1537316962432

print("修改前",list1,list2) #修改前 ['007', '张三', '996'] ['007', '张三', '996']
list1[0]="福报"
print("修改后",list1,list2) #修改后 ['福报', '张三', '996'] ['福报', '张三', '996']
  • id(变量):返回的是内存地址,若内存地址相同,即为同一个对象
  • list2=list1:将列表1赋值给列表2是引用/隐形赋值,两者同一个地址,意味着只开辟了同一个内存空间(一个房间,既叫s1,又叫s2,这个房间里有3个位置s1[0]~s1[2])
  • list1=['007',"张三",'996']:列表必须通过显式的数据进行赋值,才能生成新的对象
  1. 将其他对象转为列表list():将其他对象转为列表如字符串、range对象等。

字符串元素必须有引号
最外面必须有中括号[]
注意与str()对比

1
2
3
4
5
6
7
a=10
s=str(a)
print(a) #10
print(s) #10
print(list(s)) #['1', '0']
#print(list(a)) #报错
print(list(range(1,11,2))) #[1, 3, 5, 7, 9],range(1,11,2)=[1,10]步长为2
  1. 增加元素:append、extend、insert
    append():列表名.append(新增元素),在末尾增加一个新元素
    extend():原列表名.extend(新列表名),在末尾添加另一列表的全部元素
    insert():列表名.insert(位置,新增元素),在指定位置插入元素,原本该位置上元素后移,列表内的元素类型不同/可变
1
2
3
4
5
6
7
8
9
10
11
12
list1=[1,2,3]
list1.append(4)
print(list1) #[1, 2, 3, 4]

list2=[1,2,3]
list2.append(4,5) #报错
print(list2) #

list3=[1,2,3]
list3.append([4,5]) #这里的4,5是一个整体
print(list3) #[1, 2, 3, [4, 5" width="80%"/>
print(len(list3)) #4,长度为4,说明只有4个元素
1
2
3
4
5
6
7
list1=[1,2,3]

list1.extend(4) #报错
list1.extend(4,5) #报错

list1.extend([4,5])
print(list1) #[1, 2, 3, 4, 5]
1
2
3
4
5
6
7
list1=[1,2,3]
list2=[9,10]

list1.insert(0,5)
print(list1) #[5, 1, 2, 3]
list1.insert(3,list2)
print(list1) #[5, 1, 2, [9, 10], 3]
  1. 删除元素:del、pop、remove
    del:del 列表名[下标],按照索引删除列表元素
    pop():列表名.pop(),移除列表中最后一个元素,并返回移除的元素值
    remove():列表名.remove(要移除元素),移除第一个匹配的元素
1
2
3
4
5
6
7
8
9
10
11
12
13
list1= [123,'jy','ALG',"jy"]
del list1[1]
print(list1) #[123, 'ALG', 'jy']

list2= [123,'jy','ALG',"jy"]
list2.pop()
print(list2.pop()) #ALG,返回移除的元素值
print(list2) #[123, 'jy', 'ALG']

list3= [123,'jy','ALG',"jy"]
list3.remove("jy")
print(list3.remove("jy")) #None
print(list3) #[123, 'ALG', 'jy']
  1. 分片赋值:中括号+数字+冒号,利用分片操作来进行赋值
  • 为多个元素赋值:分片范围合理+有新值=>新值替换旧值
  • 插入新元素:分片范围首尾一样+有新值=>插入元素
  • 删除元素:分片范围合理+无值=>删除旧值
1
2
3
4
5
6
7
8
9
10
11
list1=[1,2,3,4]
list1[2:]=[5,6,7] #
print(list1) #[1, 2, 5, 6, 7],不是[1, 2, [5, 6, 7" width="80%"/>

list2=[1,5,6]
list2[1:1]=[2,3,4]
print(list2) #[1, 2, 3, 4, 5, 6],插入后面的元素后移

list3=[1,2,3,4]
list3[1:3]=[]
print(list3) #[1, 4]
  1. 排序:reverse、sort
  • reverse将列表元素反向存放:列表名.reverse()无参数
  • sort对列表元素进行排序:列表名.sort(key=None, reverse=False)列表中元素类型要相同

key:排序条件,默认按照值的大小(可省略,字符按照ASCII码),key=len按照长度排序
reverse:升降序,默认升序可省略,reverse=True降序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#反序
list1=[12,0.3,'jy','ALG']
list1.reverse() #只是执行操作,并不会返回值,print(list1.reverse())结果为None
print(list1) #['ALG', 'jy', 0.3, 12]

#sort无参
list2=[2,3,1]
list2.sort()
print(list2) #[1, 2, 3]

list3=['jy','JY','1']
list3.sort()
print(list3) #['1', 'JY', 'jy']

#sort有参
list4=[2,3,1]
list4.sort(reverse=True)
print(list4) #[3, 2, 1]

list5=['jy','JY','1']
list5.sort(key=len,reverse=False)
print(list5) #['1', 'jy', 'JY']

元祖方法

强制转为元祖类型:tuple()函数,将其他对象(如列表、字符串、range对象)转为元组

1
2
3
4
5
6
7
list1=[1,4,'jy']
tuple(list1)
print(list1) #[1, 4, 'jy'],并没有变为元祖

print(tuple([1,4,'jy'])) #(1, 4, 'jy')
print(tuple("hi,python")) #('h', 'i', ',', 'p', 'y', 't', 'h', 'o', 'n')
print(tuple(range(0,10,2))) #(0, 2, 4, 6, 8)

16.函数

1.系统自带函数

不需要导包

1.返回绝对值:abs(x)
2.返回两数的商和余数:divmod(x,y),返回2个值,计算机若返回多个值,默认返回元祖
3.对浮点数进行四舍五入求值round(数值,[保留位数]):四舍五入,省略保留位数时四舍五入返回整数

1
2
3
4
5
6
7
8
9
10
11
#返回绝对值
print(abs(-5)) #5
print(abs(-5.5)) #5.5,参数可以为小数,返回也是小数

#返回两个数值的商和余数
print(divmod(5, 2)) #(2, 1)
print(divmod(-5, 2)) #(-3, 1)

#对浮点数进行四舍五入求值
print(round(3.456)) #3
print(round(3.456,2)) #3.46

4.对每个元素求和:sum(序列[,n])
5.将数值字符串转成数值:eval(数值字符串),之前input输入有讲

1
2
3
4
5
6
7
8
9
# sum求和
print(sum([1, 2, 3])) #6,1+2+3
print(sum([1, 2], 7)) #10,1+2+7

#eval
print(eval('3')+2) #5
#print(eval('3'+2)) #报错
print(eval('3')*2) #6
print(eval('3'*2)) #33

2.标准函数库

需要导包import

math库

输出的结果基本都是浮点数(除取整外)

1.返回圆周率的值:math.pi,考频低
2.返回平方根:math.sqrt(X)
3.返回绝对值:math.fabs(X)

与前面自带函数求绝对值abs()区分:有math.即为小数输出

1
2
3
4
5
6
7
8
9
10
11
#圆周率
import math #导包
print(math.pi) #3.141592653589793

#平方根
print(math.sqrt(2)) #1.4142135623730951
print(math.sqrt(4)) #2.0,math输出基本都是小数,选择题注意.0小数点

#绝对值
print(math.fabs(-5)) #5.0,小数
print(abs(-5)) #5

4.返回数字的下舍整数:math.floor(X),取数轴的左边整数
5.返回数字的上入整数:math.ceil(X),取数轴的右边整数
6.返回x的y次方:math.pow(X,Y),求幂的运算符:``

1
2
3
4
5
6
7
8
9
10
11
#下取整
print(math.floor(-1.5)) #-2
print(math.floor(1.5)) #1

#上取整
print(math.ceil(-1.5)) #-1
print(math.ceil(1.5)) #2

#幂次
print(math.pow(2, 3)) #8.0,注意小数
print(23) #8

random库

1.在[0,1)中随机生成一个实数:random.random(),无参数,前面表示库名,后面表示函数名
2.在[x,y]中随机生成一个整数random.randint(x,y)

之前讲过:生成随机小数random.uniform()

3.从range得到的数中随机生成一个整数randrange ([start,] stop [,step])

1
2
3
4
5
6
7
8
9
10
import random #导包

#在[0,1)中随机生成一个实数
print(random.random()) #0.482711830976685

#在[x,y]中随机生成一个整数
print(random.randint(-3,0)) #-2

#从range得到的数中随机生成一个整数
print(random.randrange(10,100,2)) #54

3.自定义函数

格式:注意缩进与冒号

1
2
3
4
def 函数名(形参列表):
函数体

变量 = 函数名(实参数列表)

函数体中包含return语句
形参与实参:个数与类型必须完全一致

1
2
3
4
5
6
7
8
9
10
11
12
#求两数之和
def Add(a,b):
c=a+b
return c

C1=Add(3,4)
C2=Add(4.5,2)
C3=Add(4.5,'2')

print(C1) #7
print(C2) #6.5
print(C3) #报错

题目

1.看流程图写程序:在平面直角坐标系中,A、B、C 三点的坐标分别为A(1,1)、B(4,7),C(–2,5),求三角形ABC 的面积。
提示:若三角形三条边长为 a、b、c,则三角形的面积为S =根号<p(p-a)(p-b)(p-c)>,其中p=(a+b+c)/2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import math
#求两点间长度
def Length(A,B):
A_X=A[0]
B_X=B[0]
A_Y=A[1]
B_Y=B[1]
#距离=根号(y2-y1)^2+(x2-x1)^2
delta_X=abs(A_X-B_X)
delta_Y=abs(A_Y-B_Y)
length_AB=math.sqrt(math.pow(delta_X,2) + math.pow(delta_Y,2)) #距离
return length_AB

def S(A,B,C):
a=Length(A,B)
b=Length(B,C)
c=Length(A,C)
p=(a+b+c)/2
s=p*(p-a)*(p-b)*(p-c)
S=math.sqrt(s)
return S


A=[1,1]
B=[4,7]
C=[-2,5]

sq=S(A,B,C)
print("三角形ABC的面积=%.2f" % sq) #15.00

2.编写函数,实现求两数中的较小数。(用自定义函数实现)

1
2
3
4
5
6
7
8
9
10
def Min(a,b):
if a<b:
min =a
else:
min =b
return min

A=eval(input("请输入a="))
B=eval(input("请输入b="))
print("A与B之间的最小值=",Min(A,B))

3.我国古代数学家张丘建在《算经》中提出了一个著名的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?请使用C语言或者Python语言编写程序,输出全部可能的解

1
2
3
4
5
6
7
for x in range(1,99,1): # x是鸡翁
for y in range(1,100-x,1):# y是鸡母
z=100-x-y
if z%3 0 and 5*x+3*y+z/3100:
print("鸡翁{}只,鸡母{}只,鸡雏{}只".format(x,y,z))

#5x+3y+1/3z=100,x的取值范围可以缩小到20,y的取值范围可以缩小到33

4.《孙子算经》是中国古代重要的数学著作,该著作卷下第26题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”《孙子算经》不但提供了答案,而且给出了解法。请编程求卷下第26题的最小正整数解

学会不要flag,直接写True

1
2
3
4
5
6
7
8
num =1
flag=0
while flag0: # 可以不要flag,直接写True
if num%32 and num%53 and num%72:
print(num)
flag = 1
break
num +=1

5.删除列表中所有指定元素,如abc

in是成员运算符,判断’abc’是否在x里面,在返回True,不在返回False

1
2
3
4
x=['123','abc','xyz',123,'abc','ABC',"python"]
while 'abc' in x: # in是成员运算符,判断'abc'是否在x里面,在返回True,不在返回False
x.remove('abc') #abc在x里面就执行remove,直到abc不在x里面
print(x) #['123', 'xyz', 123, 'ABC', 'python']

6.该程序采用的算法是递归法,当输入3时,输出的最终结果为( )

第四章:计算机网络技术

第一节:计算机网络概述

定义(无考点,理解):利用通信设备(如交换机、路由器)和线路,将计算机相互连接,在网络操作系统、网络管理软件和网络通信协议的管理协调下,实现资源共享和信息传递的系统。

最小的网络:计算机A————计算机B

两头是:计算机
用什么连接:网线、WiFi、交换机、路由器
作用:共享、通信

1.网络传输介质

1.1有线(选择题)

双绞线:

  • 组成:4根8组,两两绞在一起(抗干扰)

  • 分类:

    • 考频低:非屏蔽双绞线UTP(常见),屏蔽双绞线STP(安全性高)
    • 3类:10Mbps(即10Mbit/s),5类:100Mbps,6类:1000Mbps
  • 联网特点:传输距离100m

    • 线序:(只这个考简答,其余选择题)

      • 568B:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕口诀:橙绿蓝棕,白在前,46交叉
      • 568A:绿白、绿、橙白、蓝、蓝白、绿、棕白、棕。记住568B之后,把橙绿文字交换即可
    • 连接方式:

      • 直通线:两头标准一样(都是568A或都是568B),连不同设备(一头是电脑,一头是路由器/交换机)
      • 交叉线:两头标准不同,连相同设备(两头都是计算机、都是交换机)
      • 中间的线最长100m,信号会衰减。网线一般用于室内

光纤:

组成:几十根玻璃纤芯
分类(考频低):单模光纤(长距离)、多模光纤(短距离)
联网特点:传输距离100km
纤芯极细,一般用于室外(100km)

同轴电缆:

电视传输系统,同心圆
细同轴电缆185m,粗同轴电缆500m

性能最好:光纤
考点①认图②特点③场景使用④长度

1.2无线

无线又叫电磁波,区分:波长/频率,考频低①例子分类②蓝牙距离

无线电波:广播、电视
微波:微波炉、WiFi(2.4G/5G),2.4G穿透性强但速率慢
红外线:遥控器
激光:卫星、潜艇
蓝牙:距离10m

2.网络连接设备(考功能)

2.1网络接口卡

别名:网卡、网络适配器
每个网卡有唯一的硬件地址/MAC地址(物理地址,出厂定死)

2.2中继器

当A、B两台计算机的距离超过100m时,一根网线不够用且导致信号减减,此时需要集线器来扩大距离,将信号重新整型,再次放大

2.3集线器

若是每2台计算机之间都用中继器两两连接,过于复杂浪费,直接使用一个多端口连接,作用扩大距离,将信号重新整型,再次放大,链接多个设备

2.4交换机

集线器:每次A找C都需要广播(浪费资源,只传广播,其他人无法传,且其他人都收到了AC的悄悄话)=>`交换机:有记忆功能(交换机端口号+MAC地址),且与集线器类似,都连接计算机

刚买回来的交换机:无本地记录,A先在集线器里进行广播寻找C,此时BD不会回应,C回应。交换机收到来自3号端口的信息以及C的MAC地址,下次A寻找C则直接查找地址表,不再需要广播,直接发送至对应端口进行单播

功能:具有记忆功能,记住MAC地址

2.5路由器

交换机记忆的是MAC地址,上网常用的是IP地址,路由器用来寻找IP地址
路由器功能:用来进行网络之间的通信,寻找IP地址,选取最合适路径

图中连接计算机的设备:集线器or交换机
连接网络的设备:路由器

2.6考点

选择题记忆下表即可:①位于OSI哪层模型②对应的功能

默认是第二层/数据链路层设备

3.计算机网络的组成及拓扑结构

3.1网络组成

资源子网:边缘部分

功能:数据处理
设备:连入网络的设备,如手机、计算机

通信子网:核心部分

功能:数据传输
设备:网络中的连入介质和设备,如网线、交换机

3.2拓扑结构(选+简答)

指传输媒体互联各种设备的物理布局(几何结构,与设备间的真实距离无关,与相对位置有关)

考点(选+简答):名称-图示-优缺点

3.2.1.总线型拓扑结构

总线型拓扑结构:对总线的依赖性高(所有计算机都连入一条公共线路)

优点:

  • 结构简单,安装、扩充删除节点容易
  • 单一节点故障对网络影响不大
  • 信道利用率高(总线一直在忙)

缺点:

  • 总线故障影响网络通信
  • 信号延迟不确定(AB同时给E方发消息会冲突,随机再发)
  • 故障诊断较难,需分段诊断

4角度:①增删节点:容易②单个节点故障:不会影响整个网络通信③核心部位故障:核心是总线④通信方式:A延迟不确定、分段诊断、信道利用率高

B给E发消息:信息从B出发,往线的两头跑。ACD发现不是找自己的,不会回应,E回应的小心信息易燃物往线的两头跑,ADC依然不理会,若是没有端结器,消息到终点则会弹回,E无法分辨是A的消息还是自己的信息弹回(端结器:吸收信号,防止反射

3.2.2.环形拓扑结构

环形拓扑结构:串联组成封闭环

优点:

  • 传输速度快(不需要选择路径),易于实时控制
  • 每个节点是平等的

缺点:

  • 扩展差,添加删除节点麻烦,会破坏在传输的数据(万一要破开的线上正在传输数据)
  • 单个节点/线路故障,全网通信瘫痪

四角度:①增删节点:麻烦②单个节点故障:会影响通信③核心部位故障:无核心部位,节点平等④通信方式:快

A想要与D通信:按照一个规定的方向(顺or逆时针)传输数据,A把信息给B,B不会回应,按照方向继续传输给下一个节点,C依然不回应继续转发给下一个节点D,D接收处理数据
3.2.3.星型拓扑结构

星型拓扑结构:对中心节点依赖大(重点,小型网络里最流行)

优点:

  • 安装容易,控制简单
  • 单个节点故障,不影响全网通信
  • 数据传输不会引起冲突

缺点:

  • 线路总长较长,费用高(考频低)
  • 中心节点故障,网络瘫痪(中心节点可以是交换机/集线器>`路由器)

四角度:①增删节点:容易②单个节点故障:不会影响整体通信③核心部位故障:中心设备核心④通信方式:无冲突

A与D通信:A先发送至中心节点,再由中心节点进行转发。A与B同时给D发信息,不会冲突
3.2.4.树形拓扑结构

树形拓扑结构:对根节点依赖大,又叫多级星型拓扑结构(每个小分支都是星型拓扑结构)

优点:

  • 易扩展
  • 故障隔离容易(直接操作对应的分支)

缺点:

  • 对根节点依赖大(根节点连接的是外部互联网,故是路由器)

四角度:①增删节点:容易②单个节点故障:不会影响整体通信③核心部位故障:根节点④通信方式:无冲突

A与B通信:不必经过根节点
A与C通信:必须经过根节点

3.2.5.网型拓扑结构

网型拓扑结构:任意两节点之间至少2条通路。适用于大型广域网,其他都适用于中小型局域网

优点:

  • 可靠性高(A、B之间的通路断了还可以通过其他间接通路)
  • 共享资源容易

缺点:

  • 线路长,硬件成本高
  • 管理和路径选择复杂

4.网络分类

按照覆盖范围:Local-Middel-Wide

局域网:LAN,小范围,房间、学校、企业
城域网:MAN
广域网:WAN,国家、洲、全球Internet

<路由器说明书图>

家里的设备(电脑)接LAN口
猫(连外网)接WAN口

按照传输介质:有线网、无线网
按照网络传输技术:广播式网络(一对多)、点对点式网络(一对一)

按照向用户提供的服务

有线电视网络(广播电视网)
电话网(电信网)
计算机网络(互联网)

第二节:网络体系结构

网络体系结构就是网络各层及其协议的集合

1.概述

网络协议:

规定信息格式和发送接收的规则
3要素:语法、语义、时序(同步)

分层设计:

左右两边主机的层数一致
同层(对等层)可以看见同层的信息(通过协议
上层不需要关注下层的信息
下层给上层提供服务(通过接口

发送端和接收端的方向相反:U型

2.OSI参考模型(选+简)

ISO国际标准化组织提出
层次:7层,物理层、数据链路层、网络层、传输层/运输层、会话层、表示层和应用层

A想通过电脑的QQ给B发送"HI"的信息
上3层:解决客户端的问题(QQ自己解决)

A的电脑QQ(应用层"人机交互")=>将"HI"转为ASCII码(表示层:解决编码问题)=>接受的是B(会话层:会话的建立/会话的维护/会话的终止)

运输层:解决应用进程的问题

加上头部:将QQ这个应用的端口号+上方传入的报文

网络层:加头(IP地址),寻找最合适路径,解决网络间问题
链路层:内网认识的是MAC地址,加头(MAC地址),加尾(校验码),解决内网问题
物理层:将收到的数据转为2进制
类似信封层层打包

只需要记忆表格即可:
选择题:层-功能-单位
简答:功能(关键字)

端:指的是进程的端口号(双方QQ应用进程通信)
点:发送方和接收方(双方电脑通信)

3.TCP/IP参考模型

①知道OSI和TCP/IP如何对应        ②功能:记忆OSI对应的

第三节:Internet协议及应用

所有连入Internet的计算机都使用相同的通信协议,这个协议就是TCP/IP协议

1.网络层协议

1.1地址IPv4

唯一识别网络中不同的主机

MAC地址:唯一识别主机

IP地址未说明,默认是IPv4

IP地址的表示:

2进制:32位
10进制:点分十进制,8位一组,用·隔开(3个点,隔开4个数,数0~255

IP地址的分类:网络号+主机号(类似电话:区号-电话号码)

根据固定位的不同,把IP地址分为5类

类型固定位网络号所占位数主机号所占位数第一个十进制范围网络号地址范围能容纳最多的主机数(看主机数)

类型 固定位 网络号所占位数 主机号所占位数 第一个十进制范围 网络号地址范围 能容纳最多的主机数(看主机数)
A 0 8 24 0000 0000-0111 1111即0~127
但0.0.0.0和127不能分配给主机(特殊用)1~126
1~126 2^24 -2(全0全1留作他用)
B 10 16 16 128~191 128.0~191.255 2^16 -2$(全0全1留作他用)
C 110 24 8 192~223 192.0.0~223.255.255 2^8 -2(全0全1留作他用)
C 110 24 8 192~223 192.0.0~223.255.255 2^8 -2(全0全1留作他用)
D 1110 组播地址224
E 11110 保留地址

网络号≠网络地址

网络地址就是IP地址,网络号是IP地址的组成部分
固定位包含在网络号里

考法:①给IP地址,询问哪一类(100.200.30.40,A类):看第一个10进制数(100)在哪个范围②网络号和主机号各占位数:A类4个数1-3分③网络号、主机号分别是:网络号100,主机号200.30.40④容纳主机数

特殊IP地址:不能分配给普通主机使用

考:①含义②3类用途③会求

1.2子网技术

背景:企业购买了一个网段145.13.0.0,可以容纳$2^{16}-2$(约6W)台电脑,现在多个部门要分开网段,重买浪费。把主机号借几个过来作为子网号

1.2.1子网划分方法

子网号:需要从左往右借连续的位数
借用N位来划分子网,可以划分出$2^N$个子网/$2^N$-2也可,看有哪个选项,主机号剩余M位,则该子网最多容纳$2^M$-2台主机(主机永远不能全为0或1,需要减2)

192.168.30.0拿出2位主机号作为子网号

①子网个数:22=4个(00,01,10,11)
②主机个数:26-2个
③4个子网的地址:子网地址:网络号不变,主机号全为0,4个地址为192.168.30.0/192.168.30.64/192.168.30.128/192.168.30.192
④划分5个子网需要借多少位:2N≥5

只需要知道上面怎么求的以及怎么借即可

1.2.2子网掩码

考法:①网络+子网号全1,主机号全0②点分十进制表示③斜线表示④求掩码/借位

IP地址为:100.20.30.40,默认情况下(无子网位)
①判断地址类型:A类
②比例:1:3
③子网掩码:网络和子网号全为1,主机号全为0:子网掩码为255.0.0.0

若是100.20.30.40/10表示发生了借位(默认/8),说明借了2位,则其子网掩码为:`11111111 11000000 00000000 00000000`=255.192.0.0

若是255.255.224.0,则其借了()位:

①首先判断为B类
②224的2进制为:111 00000,借了3位
③斜线计记法:150.20.30.40/19

根据IP地址+子网掩码,求网络地址:按位与
例1:已知IP地址为168.16.16.51,子网掩码为255.255.0.0,求其网络地址:

原本求法:IP地址168,B类,2:2分,网络地址168.16.0.0
按位与:1&R=R,0&R=0,255为全1,168.16.16.51&255.255.0.0=168.16.0.0

例2:已知IP地址为168.16.16.51,子网掩码为255.255.255.0,求其网络地址

168.16.16.51&255.255.255.0=168.16.16.0

1.3IPv6地址

解决地址不够用的问题,二进制128b(128位),采用16进制表示
16进制:冒号十六进制(每16位1组,共8组,用:隔开)
简化书写:连续的0可以用::代替,但只允许出现一次

第二行:只有6组,说明省略了2个0

IPv4的地址被包含在IPv6里面,在IPv6的低32位

1.4物理地址MAC

作用:网络内部寻址时,使用MAC地址。网络之间寻址使用IP地址
表示:

二进制:48b
十六进制: 每8位为1组,共6组,用-(Windows)或:(Linux、Android)隔开,故又叫短线16进制

MAC与IP对比
可变性不同:IP可变(但唯一),MAC不变

在不同网络中,同一设备可能IP地址不同,但是在当前网络中必须唯一
唯一标识主机地址:MAC地址
唯一标识网络中的主机地址:IP地址

②长度不同:32位IP,48位MAC
③分配依据不同:拓扑,厂商
④寻址协议层不同:网络层,数据链路层

1.5其他

地址解析协议:一共就2种地址:IP和MAC

ARP:将IP地址转为MAC地址
RARP:将MAC地址转为IP地址
发送方(应用层-物理层):从网络层(IP)到数据链路层(MAC),故发送方先经过ARP,接收方是RARP

2.传输层协议

传输控制协议(TCP):面向连接、可靠的、重质量的
用户数据报协议(UDP):面向非连接、不可靠的、重速度的

3.应用层协议及服务

考点①协议位于哪一层②各自功能

3.1DNS服务

32位IP地址(机器看)——DNS——字符域名(人看)
①DNS:域名系统,标识主机
②IP和DNS 对应(即IP和域名是一回事)
③功能:提供域名和IP地址的转换(域名和IP地址是一一对应的关系)

域名结构:树状结构
同一个分支里面不能重名,不同分支中可以重名

主机域名格式:四级域名.三级域名.二级域名.顶级域名,写从左往右,读从右往左,www.baidu.com中的www就是3级域名(从右往左第三个),www.cnu.edu.cn中的www是4级域名

域名解析过程:实现域名和IP地址的映射,简答

本机m.xyz.com想知道y.abc.com的IP地址:
①先找到本地的域名服务器,看其是否存有该域名的IP地址,若有则返回IP地址给本机,若无则去找根域名服务器
②根域名服务器检索其下一级(顶级域名服务器)的IP地址(.com的),返回给本地域名服务器
③根据根域名服务器返回的.com的顶级域名服务器IP地址,顶级域名服务器返回abc.com的IP地址
④根据返回的abc.com的IP地址,去权限服务器里找y.abc.com的IP地址,将该域名的IP存储在本地域名服务器里,下次直接找到其IP

3.2WWW服务

World Wide Web万维网
(1)HTML(超文本标记语言 )、Web
(2)超文本和超链接
(3)HTTP:超文本传输协议
(4)统一资源定位符URL(唯一标识网页的地址)  协议名://<主机名:端口号>/<文件路径>

协议名:http、ftp、telnet
主机名:域名或IP地址均可
端口号:http(网页80)、ftp(20和21)、telnet(23),可以省略
文件路径:资源存放的位置。缺省文件名一般为index.htm

3.3FTP服务

FTP:文件传输服务,负责文件上传/下载文件。2个端口号一个负责发命令,一个负责传输

3.4电子邮件服务

用户代理(UA):发送和接收邮件的程序(QQ邮件)
邮件服务器:总称,是一个系统
电子邮件地址<用户字符组合或代码>@<服务器供应商>
电子邮件协议

SMTP:负责发送
POP3:负责接收
IMAP:负责接收

电子邮件工作过程:简答题

发送方通过用户代理(邮件程序),使用SMTP发送邮件至发送方的邮件服务器,由发送方服务器通过SMTP到对方的服务器(TCP协议),接收方通过POP3/IMAP取回服务器中的邮件

3.5其他

远程登录服务(TELNET):QQ远程、向日葵
动态主机配置协议(DHCP):给主机分配IP地址

作用:集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器
地址等信息,并能够提升地址的使用率
自动分配:随机分配,一直用
手工分配:管理员指定1个
动态分配

图为动态分配:地址池里随机抽一个,周期到了收回重新分配(连店铺WiFi,人走了下一人重新连)

第四节.数据通信技术

计算机网络是计算机技术(资源子网)与通信技术(通信子网)相结合的产物。

1.数据通信基础

1.1基本概念

信息(数据)

数据:表示信息的形式可以是数值、文字、图形、声音、图像及动画。数据是信息的载体与表示方式
在此章节:信息与网络不区分

信号:

是数据在传输过程中的电磁波表示形式
模拟信号(连续变化)和数字信号(离散变化,有跳变)

1.2通信模型

  • 发送、接收信号的两端被叫做信源/信宿,可以是手机/电脑等能通信的设备,发出的信号为数字信号(2进制)
  • 但是在信道里面可能传输数字/模拟信号,当信道里为模拟信号时,传入传出信道时需要转换信号的类型
  • 噪声源:干扰信道,使信号衰减

1.3主要技术指标(考频低)

了解术语含义即可,考频低
比特率(传输速率):每秒钟传输的二进制的位数。单位:bps or bit/s
信道容量(带宽):每秒钟传输最大的二进制的位数,200兆的带宽:200Mbps=200/8 MB/s=25 MB/s(商家文字游戏)
误码率:出错比特数/总比特数。误码率值越小,信道质量越高
信噪比:信号功率/噪声功率。信噪比越,噪声越

信道带宽:传输信号的最高频率与最低频率之差。单位:Hz(与之前带宽区别)
波特率(波形速率):每秒钟传输的波形(=码元,携带数据信息的单元)个数。单位:Baud(波特)
传播延迟:从信源到信宿需要一定的时间。延迟一般与信道的长度有关

2.数据通信方式

2.1按所需信道数分类

串行传输:将多个比特按顺序以比特流的形式逐位在一条信道中传输(需标识开始位置和结束位置)
并行传输:将多个比特以(一个字节)为单位在并行多个)的通道(8个信道)上同时传输

2.2按传输方向分类

单工通信:数据只能向一个方向传输,如无线广播等
半双工通信:数据可以向两个方向传输,但不能同时,如对讲机等
全双工通信:数据可以在两个方向上同时进行传输,如打电话等

2.3按协调方式分类

异步传输:任何时间(时间不同步)发送数据均可,需标识起始位和停止位

同步传输:时钟同步,需先发送同步字符或同步字节

2.4按在信道的传输技术分类(考频极高)

基带传输(:以原本的"0"和"1"的形式原封不动地在信道上进行传输(基带传输在信道传输的就是数字信号)

跳变:虚线前后高度不一致

非/不归零编码:低电位为0,高电位为1
曼彻斯特编码 (编码不唯一):中间有跳变(看2条虚线中间有无跳变)

  • 从高到低表示1,从低到高表示0
  • 从高到低表示0,从低到高表示1

差分曼彻斯特编码:看开始位置(虚线开始的位置),虚线前后有跳变表示0,无跳变表示1

频带传输:在信道里面传输的是模拟信号,需将数字信号转化为模拟信号进行传输

设备:调制解调器(Modem、猫)
调制:数字信号转模拟信号
解调:模拟信号转数字信号

信号进去时使用的是调制解调器的调制功能,出去时使用的是解调功能

3.数据交换技术

区分特点即可
线路交换:需要事先建立物理线路

A想要与D通信,必须实现建立好A-B、B-C、C-D之间的线路连接

报文交换:属于存储转发

A先把所有的报文文件直接发给B,等B空闲后B转发给C,等C空闲后转发给D

分组交换:属于存储转发,将数据分成不同的分组(包)

A先将报文切片,发送给B,等B空闲发给C,C再发给D

4.差错控制技术(考频高)

4.1奇偶校验码

考点:①求冗余位②判断什么时候检查出错,什么时候不出错

在发送的数据上加1位二进制位(该位为冗余位/校验位)
奇校验:使1的个数为奇数,在接收端检查"1"的个数,若是奇数,则传输无误
偶校验:使1的个数为偶数,在接收端检查"1"的个数,若是偶数,则传输无误

例1:传输数据为"1010010",采用奇校验

加1位,使1的个数为奇数,故后面加0
若接收端收到:10110100,有1位出错,1的个数为偶数,可检查出问题
若接收端收到:01100100,有2位出错,1的个数为奇数,不能检查出问题

4.2循环冗余码CRC

例1:假设准备发送的数据信息码为1101,生成多项式采用G(X)=X4+X+1,计算使用CRC后最终发送的信息码。
①最终发送的=数据位(原本的1101)+冗余位
②题目中有多项式:多项式的最高阶,故R位为4位
题目中没有多项式,直接给二进制,则将该二进制的位数减1(给10011,则冗余位数为4)
③数据位添加R个0(1101 0000):除数
由多项式得到2进制:根据多项式求,多项式最高次数为4,故写成 $=X^4+X^3+X^2+X^1+X^0$,由于只有4次、1次、0次($X^4+X+1$),故这些幂次前面的系数为1,其余系数为0
$=1×X^4+0×X^3+0×X^2+1×X^1+1×X^0$,取前面的系数10011
⑤之后模二除/异或:1101 0000 ÷ 10011=1100……100,由于余数需要与被除数位数一致,故余数为0100
⑥最终发送的数据为1101 0100

第五节.局域网技术及网络故障排查

1.局域网LAN概述

局域网特点(考频低):覆盖的地理范围比较小、数据传输速率高、误码率低

1.1IEEE802标准

IEEE802标准:

局域网参考模型只有两层:数据链路层、物理层
数据链路层又分为两层:

  • LLC层(逻辑链路控制子层)
  • MAC层(介质访问控制子层)

记忆:蓝字与红字对应(3姨太坐4路公交车Bus去5环,溜6进城,被扒8手偷光钱,只能在电线杆间11蹭WiFi)

1.2以太网技术

以太网是实现局域网的一种技术标准

采用基带传输技术(局域网里面传输的是数字信号),标准是IEEE 802.3,使用CSMA/CD介质访问控制方法争用总线

常见的以太网标准(10 Base-5、10 Base-2、10 Base-T、10 Base-F )

数值:传输速率,如10Mbps。标准以太网(10)、快速以太网(100)、千兆以太网(1000)
Base:传输方式,代表基带传输
标号:传输介质,如5是粗同轴电缆(500m),2是细同轴电缆(185m≈200m),T是双绞线,F是光纤。

1.3虚拟局域网VLAN

前面的划分子网:针对路由器(3层,网络层)
VLAN划分逻辑子网:针对交换机(2层,数据链路层)

1个交换机连接的所有设备都处于同一个网络,网络号相同,此时想要划分成不同的部门网络(只需掌握VLAN1和VLAN2是不同网络即可)

2.网络故障简介

网络故障分类:

1.按照故障性质:物理故障、逻辑故障
2.按照发生故障的对象划分:线路故障、网络连接设备故障、主机故障

诊断网络故障原则:

先硬后软
先近后远
先网络后应用
先单点后综合

3.常见的网络命令

选择题,知含义

发送4个包,接受1个包:网络依然是通的,但是可能网不好
不通的唯一情况:接收为0个包

显示网络接口配置: ipconfig 或者 ipconfig /all (比ipconfig全)
测试网络连通性: ping IP/域名

测试本机 TCP/IP 协议是否正确安装:ping本地回环地址 ping 127.0.0.1
检验本机网卡是否正常工作:ping本机IP地址(ipconfig查看)
测试DNS 服务器是否能够正常工作:

  • 先ping其IP地址,若能ping通
  • 再ping其域名,ping不通时才是DNS服务器有故障

路由追踪: tracert IP地址/域名

  • 第一步:经过自己的网关
  • 中间一顿找,最后到达域名对应的IP

4.常见网络故障及排除(选+简)

4.1物理故障

4.1.1.网卡故障

网卡禁用:右下角网络打叉或本地连接显示已禁用

解决:右键本地连接,启用

网卡驱动程序异常:

检查:设备管理器-网络适配器-右下角有黄色感叹号
解决:重新安装网卡驱动。安装成功后,ping 本机IP,通则表示网卡工作正常,若依然不通,则是网卡硬件故障

网卡硬件损坏:

按照上述步骤重新安装网卡驱动后,ping 本机IP,若不通,则说明网卡本身故障
解决:解决办法:更换网卡

4.1.2.线路故障

网线未插好

解决:重新插拔网线

网线连接方式错误:

检查方式:异种设备的连接,应该使用直通线;同种设备的连接,应该使用交叉线
解决:根据两端设备,选择合适的网线,进行连接

网线线序错乱:

检查方式:检查网线内线序颜色的顺序
解决办法:重新制作网线,或者更换线序正确的网线

路由器故障:

检查方式:ping 路由器地址(一般为192.168.1.1),如果不通,或者响应时间较长,说明路由器故障
解决办法:重启路由器或者更换路由器

4.2逻辑故障

1.TCP/IP协议问题

检查:ping 127.0.0.1,如果收到错误反馈,则说明TCP/IP协议出现问题
解决办法:重新安装

2.TCP/IP协议配置问题

检查方式:IP地址冲突、IP地址/子网掩码/默认网关,设置有误
解决办法:重新设置IP地址、子网掩码和默认网关

此处IP地址为IPv4,且不借位:①是否合法②是否与其他主机冲突
子网掩码:①网络号全1,主机号全0②1和0的个数是否正确
默认网关:同网络号的任意IP地址,一般选第一个合法地址

第六节:信息安全(必考,选)

1.信息安全概述

信息安全的属性:

信息安全三要素CIA:

  • 1.机密性:不泄露给非授权的用户
  • 2.完整性:未经授权不能更改
  • 3.可用性:合法用户能及时获取信息
  • 4.抗抵赖性(非否认性):防止用户对其行为进行否认
  • 5.可控性:责任主体的管理属性(管理员)

信息安全的风险来源:

软件自身的缺陷
人为因素:故意泄密、黑客攻击
物理缺陷:火灾、电脑被偷

2.病毒

计算机病毒:人为编写的、具有破坏功能的、一组指令或程序代码

传播:移动设备、网络
特征:了解即可:木马病毒(特洛伊病毒,藏起来)

手机病毒:符合计算机病毒的特征,但是手机程序

3.信息安全防护措施

防火墙:在内网和外网之间,允许合法而阻止非法数据进入
身份认证:证实主体的真实身份与其所声称的身份是否相符

口令认证、USB KEY、持证认证(身份证)、生物识别(刷脸)

数据加密:

  • 数字加密:明文、密文、密钥
    • 单向加密:无解密,不可逆,无密钥,使用加密函数
    • 双向加密:可逆(有解密),有密钥
    • 对称加密:加密和解密是同样的密钥
    • 非对称加密:加密和解密是不同的密钥,公钥加密,私钥解密
  • 数字签名:用于证明发送方的身份,签名和验证过程
    • 私钥签名+公钥加密;
    • 公钥验证+私钥解密
  • 数字证书:用于保证公钥的正确性
    • 由第三方证书颁发机构(CA)颁发

规范使用行为:

1.谨慎使用移动存储设备
2.注意数据来源的可靠性
3.不随意连接公共WiFi
4.安装操作系统补丁程序
5.安装杀毒软件、防火墙
6.提前备份数据

4.信息安全相关的法律法规

《中华人民共和国刑法》:诽谤、入侵、犯罪
《中华人民共和国治安管理处罚法》:谣言、病毒
《计算机信息网络国际联网安全保护管理办法》:国际联网
《中华人民共和国网络安全法》:网络安全

第七节:网页设计基础(单选)

1.HTML基础

使用 HTML 编写的超文本文档称为 HTML 文档(看成对出现的html标记即可)

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<!-- 头部结构head,放网页说明信息-->
<head>
<title>第一个H5网页</title>
</head>

<!-- 主体结构body,放置最终呈现的效果 -->
<body>
<h1 align="center">要成功,先发疯!</h1>
<hr>
<p>都到这一步了,再坚持一下~</p>
</body>
</html>

标签:有单也有成对出现

文档结构:

HTML开始和结束的标签是:<html>……</html>
头部标签:<head>……</head>,其中标题标签:<title>……</title>
主体标签:<body>……</body>,浏览器正文中显示的内容

基本语法:

标签分类:双标签、单标签、注释标签
标签属性 <标签名 属性名="属性值">内容</标签名>

2.文本类标签

1.标题标签 <hn><h1>级别最高,<h6>级别最低
2.段落标签<p>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<!-- 头部结构head,放网页说明信息-->
<head>
<meta charset="utf-8">
<title>第二个H5网页</title>
</head>

<!-- 主体结构body,放置最终呈现的效果 -->
<body>
<h1>诗词精选</h1>
<h2>唐诗精选</h2>
<h3>五言绝句</h3>
<h4>静夜思-李白</h4>
<h5>鹿柴-王维</h5>
<hr>
<h1>桃花源记</h1>
<h2 align="right">陶渊明</h2>
<p>晋太元中,武陵人捕鱼为业。……复前行,欲穷其林。</p>
<p>林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。</p>
<p>既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。</p>

</body>
</html>

3.图像标签

格式:<img src="url" alt="代替文本" width="值" height="值" />

src属性:指明图像的地址
alt属性:图像无法显示时,在原位置用文本代替
width和height属性:设置图像宽和高

4.超链接标签

格式:<a herf ="目标地址" target="值" >内容</a>
1.herf属性-目标资源的属性

**http://**xxxxx用于链接到本地浏览器的网页
**ftp://**xxxxxx"用于链接到本地服务器中的文件
mailto:xxxxx"用于链接到电子邮件
# 表示空链接

target属性:

_self表示在当前标签页 中加载目标资源,默认,可省
_blank表示在新的标签页 中加载目标资源

1
2
3
4
<body>
<a href ="http://www.baidu.com" target="_blank">百度点这里</a>
<!-- 别忘记前面的http!!! -->
</body>

别忘记http等属性!!!

1
2
3
4
5
6
<body>
<a href="https://img-blog.csdnimg.cn/b545afb26.png" >
<img src="https://img-blog.csdnimg.cn/fa5afb26.png" width="150px"/>
<p>查看原图</p>
</a>
</body>

5.表格标签

格式:

表格主体:<table>
行标签:<tr>
单元格标签:<td>
表头标签:<th>
标题标签:<caption>

1
2
3
4
5
6
<table>
<tr>
<td>...</td>
<td>...</td>
</tr>
</table>

属性:

跨行属性:rowspan
跨列属性:colspan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<body>
<table width="90%" border="1">
<caption>电影佳作推荐表</caption>
<tr>
<th>电影名称</th>
<th>上映时间</th>
<th>评分</th>
</tr>
<tr>
<td>《辛德勒的名单》</td>
<td>1993年</td>
<td>9.4分</td>
</tr>
<tr>
<td>《肖申克的救赎》</td>
<td>1994年</td>
<td>9.6分</td>
</tr>
<tr>
<td>《阿甘正传》</td>
<td>1994年</td>
<td>9.4分</td>
</tr>
<tr>
<td>《罗马假日》</td>
<td>1953年</td>
<td>8.9分</td>
</tr>
<tr>
<td>《阳光灿烂的日子》</td>
<td>1994年</td>
<td>8.7分</td>
</tr>
</table>
</body>
电影佳作推荐表
电影名称 上映时间 评分
《辛德勒的名单》 1993年 9.4分
《肖申克的救赎》 1994年 9.6分
《阿甘正传》 1994年 9.4分
《罗马假日》 1953年 8.9分
《阳光灿烂的日子》 1994年 8.7分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<body>
<table width="70%" border="1">
<caption>高中课程表</caption>
<tr>
<th colspan="2">&nbsp;</th>
<th>星期一</th>
<th>星期二</th>
<th>星期三</th>
</tr>
<tr>
<th rowspan="4 ">上午</th>
<th>第一节</th>
<td>数学</td>
<td>物理</td>
<td>生物</td>
</tr>
<tr>
<th>第二节</th>
<td>数学</td>
<td>化学</td>
<td>政治</td>
</tr>
<tr>
<th>第三节</th>
<td>英语</td>
<td>地理</td>
<td>语文</td>
</tr>
<tr>
<th>第四节</th>
<td>历史</td>
<td>英语</td>
<td>化学</td>
</tr>
<tr>
<th colspan="5">午休</th>
</tr>
<tr>
<th rowspan="4 ">下午</th>
<th>第五节</th>
<td>体育</td>
<td>语文</td>
<td>英语</td>
</tr>
</body>
高中课程表
  星期一 星期二 星期三
上午 第一节 数学 物理 生物
第二节 数学 化学 政治
第三节 英语 地理 语文
第四节 历史 英语 化学
午休
下午 第五节 体育 语文 英语

6.画布标签

1.创建画布:
<canvas id="XXX" width="200" height="100"></canvas>
2.添加边框

1
2
3
<canvas id="myCanvas" width="200" height="100"
style= " border : 1px solid #000000;">
</canvas>

3.使用JavaScript来绘制图像

7.多媒体类标签-音频

嵌入音频格式:<audio src="音频地址"controls="controls">说明文字</audio>

1
2
3
4
5
6
7
8
<html>
<head>
<title>音频</title>
</head>
<body>
<audio src="media/a1.mp3" controls="controls">打字音效</audio>
</body>
</html>

添加音频的另外两种方法:

①  <bgsound src="音频地址"loop="infinite">

仅适用于IE浏览器
loop属性表示播放的次数,若值为infinite或-1则表示无限循环。

<embed src="音频地址"autostart="true" loop="true">

autostart属性表示是否自动播放,若值为true则表示自动播放
loop属性表示播放的次数,若值为true则表示无限循环。

8.多媒体类标签-视频

嵌入视频格式:<video src="视频地址"controls="controls">说明文字</video>

1
2
<video src="media/v1.mp4 " controls="controls" width="400" height="300">
风景视频</video>

9.CSS样式

CSS:是一种能够定义网页样式的语言,可以直接写在HTML 文档中或单独存放为样式表文件。

9.1在HTML中添加样式

1.行内(内联)样式<标签名 style="属性1:属性值1;属性2:属性值2;……">内容</标签名>在主体标签中,写在普通标签内

1
2
3
4
<body>
<h1 style="font-size: 40px;color:red;">第一个标题</h1>
<p style="font-size : 30px ; color:green;">第一个段落</p>
</body>

2.内嵌(内部)样式<style type="text/css">{属性1:属性值1;属性2:属性值2;}</style>
。在头部标签中,写在成对的<style>标签内

1
2
3
4
5
6
7
<head>
<title>第一个HTML5文档</title>
<style>
h1{font-size:40px; color:red;}
p{font-size:30px; color:green;}
</style>
</head>

3.链接(外部)样式<link href="CSS文档位置"type="text/css" rel="stylesheet " />。在头部标签中,写在**<link/>标签**内

1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>第一个HTML5文档</title>
<linkhref="1-1.css"type="text/css"rel="stylesheet"/>
</head>
<body>
<h1>第一个标题</h1>
<p>第一个段落</p>
</body>
</html>

1-1.css文件内容如下:

1
2
h1 { font-size:40px;color:red;}
p{font-size:30px;color:green;}

9.2CSS的选择器

1.标签选择器【无前缀,直接使用标签名】

2.类选择器【以"."前缀+自定义名称,用class属性实现】

3.ID选择器【以"#"前缀+自定义名称,用id属性实现】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<title>第一个HTML5文档</title>
<style>
p{text-align:center;font-size:18px;}
.p1{font-size:20px;color:red;}
#p2{font-size:15px;color:blue;}
.b{text-decoration-line:underline;}
</style>
</head>
<body>
<h1 align="center">无题</h1>
<p>相见时难别亦难,东风无力百花残。</p>
<p class="p1">春蚕到死丝方尽,蜡炬成灰泪始干。</p>
<p id="p2">晓镜但愁云鬓改,夜吟应觉月光寒。</p>
<p class="p1 b">蓬山此去无多路,青鸟殷勤为探看。</p>
</body>
</html>

4.伪类选择器【某选择器+以":"分隔+伪类标识】

(1)静态伪类选择器 (用于设置链接样式)
        link:链接访问前
        visited:链接访问后 
(2)动态伪类选择器 (用于所有元素)
        hover:鼠标悬停元素上
        active:鼠标点击元素时
        focus:元素获得焦点时

10.JavaScript

1
2
3
<script type="text/javascript">alert("好好学习,天天向上!");</script>
<script type="text/javascript">confirm("确定要删除这个文件么?");<Iscript>
<script type="text/javascript">prompt("请输入用户密码:","admin");</script>

第五章:数据库技术

第一节:数据库基础

1.认识数据库

1.数据DATA:是对客观事物的描述或逻辑归纳

2.数据库DB(data base):是长期存储在计算机内、有组织的(有结构,类比表格)、可共享的相关数据的集合

3.数据库系统DBS:是指在计算机系统中引入数据库后的系统(DBS分为硬件系统&软件系统:系统软件DBMS、应用软件DBAS)

4.数据库管理系统DBMS:写编程语言的,常见的有SQL Server、Oracle、MySQL、Access等(DBAS由编程语言编写的:12306,图书管理系统 )

范围:DBS>DBMS>DB,右边依次分别是左边的核心

2.数据库技术的发展(选+简)

冗余:重复数据,不能完全消除

3.数据库系统的结构

数据库系统的三级结构:

考点①个数②给描述(关键字 )问模式③红字 

数据库系统的二级映像:可以当成链接、关系,word的论文目录,正文修改不需要手动改论文(独立性)

外模式/模式映像:保证逻辑独立性 
模式/内模式映像:保证物理独立性

4.DBMS的主要功能

1.数据定义:DBMS提供数据定义语言(DDL),定义数据库的结构、完整性约束和用户的权限等

2.数据操纵:DBMS提供数据操纵语言(DML),可实现对数据的插入、删除、修改和查询等操作

3.数据控制 (保护):主要包括数据的安全性控制、数据的完整性控制、数据的并发控制、数据的备份与恢复控制

4.数据维护:主要包括数据库出现故障后的恢复、数据库的重组、性能的监视等。由使用程序来完成

第二节:数据模型

1.概念模型

实体之间的联系

无多对一关系,先看一个实体为1,看对应的另一方是多少

一对一联系(1:1):两个方向都是1:1

例:班级和班主任 
先看1个班主任,管理1个班级;再看1个班级,被1个班主任管

一对多联系(1:n):一个方向是1:1,另一个方向是1:n。例:学生和班主任

多对多联系(m:n):两个方向都是1:n、例:学生和课程

E-R图

E-R图提供了表示实体、属性和联系的方法。E:实体,R:逻辑

图素:考点:①会认②会画

矩形表示实体、椭圆表示属性、菱形表示联系、无向边+联系类型

ER图例:1班级-n学生,1学生-1班级:故学生这侧大的数是n,班级这侧大的数为1,见图

2.逻辑模型

考点:①简答题:特点②选择题

概念:父节点/双亲节点根节点孩子节点/子节点

2.1层次模型

结构:树形结构

特点:

  • ①一个模型有且只有一个节点没有双亲节点,这个节点称为根节点
  • ②根节点以外的其他节点有且只有一个双亲节点
  • ③父子节点之间的联系是一对多联系1:n

2.2网状模型

结构:网型结构

特点:

  • ①允许一个以上的节点没有双亲节点(A、F)
  • ②允许一个节点有多个双亲节点(E)
  • ③节点之间存在多种联系m:n

2.3关系模型

结构:二维表

联系:一对一、一对多、多对多,3种均有

第三节:关系数据库

由关系模型构造的数据库

1.关系模型

基本概念

  • 关系/结构/组织:二维表
  • 属性:列、字段;元数
  • 域:值域
  • 元组:行、记录
  • 分量:属性值,如(01001,赵乾,女,讲师,计算机,6000)中01001为一个分量
  • 关系模式:二维表结构,表格名(属性1,属性2),如T(TNo,TN,Sex,Prof,Dept,Sal)

关系的性质

选择题,会判正误

(1)每一列是同质的,不同列有不同的名字,列的顺序可以任意交换 
(2)行的顺序可任意交换,不允许出现完全一样的行 
(3)不允许出现合并单元格

E-R图和关系模式的转换(选+简)

一、一对一联系的转换

①分别写出每个实体对应的关系模式

学生(学号,姓名,性别,系别) 
身份证(身份证号,签发机关,有效时间)

②任意选择其中一个实体,加入另一实体的码(能唯一标识另一个实体)

学生(学号,姓名,性别,系别,__)

③得出最终答案(不唯一)

学生(学号,姓名,性别,系别,身份证号) 
身份证(身份证号,签发机关,有效时间)

二、一对多联系的转换

①分别写出每个实体对应的关系模式

班级(班级编号,学院,系别,人数) 
学生(学号,姓名,性别,系别)

②在多的那端实体中加入一端实体的码

学生(学号,姓名,性别,系别,___)

③得出最终答案

班级(班级编号,学院,系别,人数) 
学生(学号,姓名,性别,系别,班级编号)

三、多对多联系的转换

①分别写出每个实体对应的关系模式

学生(学号,姓名,性别,系别) 
课程(课程编号,课程名称,学分)

②增加联系的关系模式,同时加上两个实体的码

选课(__,__,成绩)

③得出最终答案

学生(学号,姓名,性别,系别) 
课程(课程编号,课程名称,学分) 
选课(学号,课程编号,成绩)

2.关系模型的完整性约束

实体完整性、参照完整性、用户定义完整性

2.1关系的码

候选码包含主码(看成EXCEL筛选,根据该属性,筛选的结果只有一个),主码只有一个

学生(学号,身份证号,姓名,班级编号) 
班级(班级编号,学院,系别,人数) 
选课(学号,课程编号,成绩)

  • 对学生来讲,候选码是学号,身份证号
  • 对选课来说,候选码学号&课程编号(同时)
  • 外键:在另一个关系里是主键(班级里的班级编号),又在学生里面出现,则班级编号是学生的外键

2.2完整性

实体完成性:约束主码,主码不空不重复①有主码(不为空null)②不同元组的主码不重复

参照完整性:约束外码,B表的外键X的取值,参照A表的主键值。考试的外码和主键名称一定是一样的

用户自定义完整性:用户事先定义值域:规定选课关系中"成绩"属性的取值范围为0~100之间的整数,不能输入负数

3.关系代数

运算是以行为基本单位,类似数学的集合

表头(顶上)-列名(第一排)-行

3.1传统集合运算

两个关系的列:一模一样

传统集合运算符号        结果是否可以交换
R行+S行-RS重复可交换:R∪S = S∪R

-R行-RS重复不可交换:R-S ≠ S-R
RS重复可交换:R∩S = S∩R

3.2广义笛卡尔积

拼接,类比:$(x+y)*(A+B+C)=Ax+Ay+Bx+By+Cx+Cy$

列数:直接接在一起,同名列加上表格名。类似穷举or排列组合

拿表A的第一行,依次和表B的每一行拼接 
表A的第二行,依次和表B的每一行拼接 
表A的第N行,依次和表B 的每一行拼接

R表:m列x行,S表n列y行,R×S一共(m+n)列xy行

3.3选择

根据条件结果得到,根据列筛选但是列不变,类似excel的筛选:符号σ

$\sigma_{Dept=’计算机’}(S)$或$\sigma_{4=’计算机’}(S)$

  • 左边表示:当通过列=Dept时,选择Dept='计算机'的行(文本加引号)
  • 右边写法:第4列='计算机’时

$\sigma_{Age>18}(S)\bigwedge\sigma_{Sex=‘女’}(S)$

  • 同时筛选,同时满足and

3.4投影

根据条件得到,列数变少,类似选择,符号π,会去掉结果里面重复的值

$\pi_{SN,Dept}(S)或\pi_{2,4}(S)$

SN(姓名)Dept(系别))
冯明计算机
陈月通信
褚共计算机
卫潮自动化
蒋生通信

左边:筛选S表里面的SN、Dept列
右边:表示从S表里面筛选第2、4列

去重复:$\pi_{Dept}(S)$

                         
Dept(系别)
计算机
通信
自动化

选择与投影一起使用:$\pi_{SN}(\sigma_{Dept=’计算机’}(S))$

                 
SN(姓名)
冯明
褚共

3.5连接

等值连接:在笛卡尔积中做选择,C.CNo=SC.CNo只要积里面的C.CNo字段与SC.CNo字段一致的行就留下(绿色行就留下其余舍去)

规则:

  • ①将2表的列名全抄下,相同的列名记得加上表名
  • ②根据两表中对应列查看是否有相同的值:CNO=C0201有1个,SNO=C0201有2个,故结果表中C0201对应的数据有1×2=2行,CNO=C0204有1个,SNO=C0204有0个,无对应舍去
  • ③把结果表中剩下的数据补全

自然连接:特殊的等值连接,需要有相同的属性,等值连接做完后,去掉重复的列(CNO或SNO任意去掉一列均可)

3.6除(了解,不考)

R÷S:

  • ①先在R中去掉与S相同的列(类似约分,只剩X列)
  • ②在R中找剩下的列的取值范围(X=x1,x2)
  • ③找每个取值所对应的象集(X=x1时,Y的取值范围y1,X=x2时Y的取值范围y1,y2,y3)
  • ④在S表中,对Y进行投影,结果Y=y1,y2
  • ⑤去第③步寻找哪个象集完全包含了第④步得到的集合(Y=y1,y2,y3),此时X=x2
  • ⑥结果X=x2

第四节:ACCESS数据库

1.创建数据表

使用表设计器:数据表视图或设计视图,均需要选择数据类型

  • 自动编号的唯一值:保证主键不空不重复,1,2,3,4……
  • 是否:选择框,打钩为是
  • 日期:选择,也可以手动输入。可以输入年月日,又可以输入日月年
  • 货币:输入数字,自动出现符号

修改数据表结构:插入、删除、修改列(类似Excel)

数据表之间的关系:建立关系的条件如下:2个钥匙叫联合主键

1.通过外码建立联系联系 
2.外码的数据类型保持一致(不能一个是文本一个是数字)

2.编辑数据表记录

添加记录:添加行①按照数据类型输入②遵循约束条件(实体、参照)

修改、删除记录:类似Excel,删除记录

3.创建查询(重点)

指定列查询:

上面的表只出现了S,故下面的表也全是S,需要显示某列就打钩

多表:查询学生的学号、姓名、课号和成绩:

排序查询:在所需字段选择即可


条件查询

1
2
'h?':查询结果只有hi
'h*':查询结果hi和hello

也可以between 75 and 80

查询课号以"C"开头的所有课号及课程名:

①不确定的查询,加上like文本字段,加上引号(单双均可)


分组查询:统计学生表中不同性别的个数及年龄的最大值

①先确定需要的结果列数:3列,性别、个数、该性别下最大年龄
②是按照不同性别统计,故性别分组,分别统计有多少人(由于主键唯一,统计主键个数)、分别统计年龄最大值

第五节:SQL基础

1.SQL的特点

1.综合能力强、2.非过程化、3.面向集合、4.使用方法灵活、5.简洁易用:9个动词

数据查询:SELECT 
数据操纵:INSERT,UPDATE,DELETE 
数据定义:CREATE,ALTER,DROP 
数据控制:GRANT,REVOKE

2.数据定义

数据类型:字符串型(char、varchar变长)、数值型(int、float)

2.1创建数据表CREATE TABLE

格式:

1
2
3
4
5
6
7
CREATE TABLE <表名>
(

  列名 数据类型 [列约束],
  列名 数据类型
  [表约束]
)
  • 表名:字母、数字、下划线组成
  • 列约束类型:①非空NOT NULL②值唯一UNIQUE③主码PRIMARY KEY
  • 当主键不止一个时,在后面增加表约束:PRIMARY KEY(列名1,列名2…),中括号表示可以省略,尖括号一定要写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE S
(
SNo varchar(6) PRIMARY KEY,
SN varchar(10) NOT NULL,
Sex char(1),
Dept varchar(10),
Age int
)

CREATE TABLE SC
(
SNo varchar(6),
CNo varchar(10),
Grade float,
PRIMARY KEY(SNo,CNo)
)

2.2修改数据表ALTER TABLE

格式:

1
2
3
4
5
6
7
ALTER TABLE <表名>  
(

  ADD 列名 数据类型 [列约束]**,**
  DROP COLUMN 列名,
  ALTER COLUMN 列名 数据类型 [列约束]
)
  • 实现功能:①增加列②删除列③修改列
1
2
3
4
5
6
7
8
ALTER TABLE S
{
DROP COLUMN ClassNo;
//删除数据表 S 中的属性 ClassNo

ALTER COLUMN SN varchar(12) NOT NULL,
//将数据表S的属性SN加宽到12个字符
}

2.3删除数据表DROP TABLE

格式:

1
DROP TABLE SC//删除选课表 SC

提示:①级联关系均删除②物理删除,不可撤销

3.数据操纵

3.1插入数据ALTER TABLE

格式:

1
2
ALTER TABLE <表名> [列名1,列名2...] 
VALUES (<值列表>)

提示:
①列名省略时,值列表必须是所有属性的数据 
③列名不省时,值列表必须与列名一 一匹配。 
③值列表为多个时,中间用逗号隔开,若是字符数据需要加引号

1
2
3
4
INSERT INTO S 
VALUES('11001','冯明','男','计算机',18)<--!向学生表 S 中添加一条学生记录-->
INSERT INTO S (SNo,SN,Sex)
VALUES('11002','陈月','女')

3.2修改数据SET

格式:

1
2
3
UPDATE <表名> 
SET 列名1=数据1,列名2=数据2
[WHERE 条件]

提示:
①where后面指定修改的条件 
②where子句省略时,表示修改表中所有列的值

1
2
3
4
5
6
7
//将学生“冯明”转入自动化系
UPDATE S
SET Dept='自动化'
WHERE SN='冯明'
//将所有学生的年龄增加1
UPDATE S
SET Age=Age+1

3.3删除数据DELETE

格式:

1
2
DELETE FROM <表名> 
[WHERE 条件]

提示:
①where后面指定删除记录的条件 
②where子句省略时,表示删除表中所有记录

1
2
3
4
5
//删除学生“冯明”的记录
DELETE FROM S
WHERE SN= '冯明'
//删除学生表 S 的所有记录
DELETE FROM S

4单表查询

格式:

1
2
3
4
**SELECT** [ALL|DISTINCT] 列名 [ **AS**  列别名 ] FROM 表名  
[WHERE 条件1]
[GROUP BY 列名  [HAVING 条件2 ] ]
[ORDER BY 列名2 [ASC|DESC" width="80%"/>

提示:
①DISTINCT 代表在结果中,去除重复值 
②若查询全部列,<列名>可以用*代替 
③可以通过AS给列名和表起别名 
④GROUP BY进行分组,HAVING根据条件进行分组 
⑤ORDER BY进行排序;ASC升序(可省)、DESC降序

4.1无条件查询SELECT

格式:

1
2
SELECT [ALL|DISTINCT] 列名  [ AS  列别名]
FROM 表名

提示:
①DISTINCT 代表在结果中,去除重复值 
②若查询全部列,<列名>可以用*代替 
③可以通过AS给列名和表起别名

1
2
3
4
//从学生表S中查询所有学生的学号、姓名和性别
SELECT SNo,SN,Sex FROM S
//从学生表S中查询所有学生信息
SELECT * FROM S

4.2条件查询WHERE

格式:

1
2
3
SELECT [ALL|DISTINCT]  列名  [ AS  列别名]
FROM  表名
WHERE 条件or聚集函数

提示:
①若查询全部列,<列名>可以用*代替 
②查询条件及运算符对应表格:?表示任意一个,星号表示任意多个,COUNT(*)统计行数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//从选课表 SC 中查询成绩大于80的学生选课信息
SELECT *
FROM SC
WHERE Grade>80
//从选课表SC中查询选了课程“C0201”且成绩高于80分的学生的学号与成绩
SELECT SNo, Grade
FROM SC
WHERE CNo='C0201' AND Grade>80
//从选课表 SC 中查询选修了课程“C0204”或“D0101”的学生的选课信息
SELECT *
FROM SC
WHERE CNo IN ('C0204','D0101')
//从课程表C中查询课号以“C”开头的的所有课号及课程名
SELECT Cno, CN
FROM C
WHERE CNo like 'C*'
//从表 SC中查询考试成绩有效的学生选课信息
SELECT *
FROM SC
WHERE Grade IS NOT NULL
//从学生表 S 中查询计算机系学生的人数,以及这些学生年龄的总和及平均值
SELECT COUNT(*), SUM(Age), AVG(Age) AS 平均年龄
FROM S
WHERE Dept='计算机';

4.3分组查询GROUP BY

格式:

1
2
3
4
5
SELECT [ALL|DISTINCT]  列名  [ AS  列别名]
FROM 表名
[WHERE 条件1or聚集函数]
GROUP BY 列名1
[HAVING 条件2]

提示:
①GROUP BY进行分组 
②分组之有条件进行过滤,用WHERE 
③分组之有条件进行过滤,用HAVING

1
2
3
4
5
6
//查询至少有2名男同学所在的系名
SELECT Dept
FROM S
WHERE Sex='男'
GROUP BY Dept
HAVING Count(*)>=2

4.4排序查询ORDER BY

格式:

1
2
3
4
5
6
7
SELECT [ALL|DISTINCT]  列名  [ AS  列别名]

FROM 表名

[WHERE 条件1or聚集函数]

ORDER BY 列名2 [ASC|DESC]

提示:
①ORDER BY进行排序 
②ASC升序(可省,默认)、DESC降序

1
2
3
4
//从学生表S中查询学生的学号、姓名和年龄,并按年龄降序排列
SELECT SNo, SN, Age
FROM S
ORDER BY Age DESC;

5.多表查询

5.1使用单表查询的SQL命令

格式:

1
2
3
4
5
6
7
8
9
SELECT [ALL|DISTINCT]  列名  [ AS  列别名]

FROM1,表2

[WHERE 条件1]

[GROUP BY 列名1 [HAVING 条件2" width="80%"/>

[ORDER BY [ASC|DESC" width="80%"/>

提示:
①FROM子句,需要连接多个表 
②SELECT后列名,如果两个表中均有,需要指明表名(表.列名
③WHERE子句,需要指明两表建立联系的条件

5.2使用JOIN子句

格式:

1
2
3
4
5
6
SELECT [ALL|DISTINCT]  列名  [ AS  列别名]
FROM1 INNER JOIN2
ON 连接条件
[WHERE 条件1]
[GROUP BY 列名1 [HAVING 条件2" width="80%"/>
[ORDER BY [ASC|DESC" width="80%"/>

提示:
①两表之间用INNER JOIN进行连接 
②两表建立连接的条件,使用ON子句

第六节:关系数据的设计

1.设计基础(简+选)

设计方法:
①基于E-R模型的数据库设计方法
②基于3NF的数据库设计方法(单一关系模式 → 投影 → 若干关系模式):先把所有列用一张表列出,拆成小表

2.规范化的重要性

判断下表的主键:SNO+CNO一起才能唯一标识,拆成小表就把SNO和CNO分成2张表,再来一张表将SNO+CNO结合

3.函数依赖

定义:设关系模式 R(U) ,U 是属性集,X 和 Y 是 U 的子集。如学生(学号、身份证号、姓名、身高、年龄)

  • X确定Y,Y依赖于X,记作$X→Y$。X为决定因子,Y为依赖因子。
  • 当Y不依赖于X时,记作$X\nrightarrow Y$;
  • 当$X→Y$且$Y→X$时,则记作$X↔Y$

学生(学号、身份证号、姓名、身高、年龄):
①候选码为学号、身份证号
②主码为候选码2选1
③一旦学号确定了,该学生的姓名也确定了,学号决定姓名,学号→姓名
④身高无法决定年龄,无依赖关系$身高 \nrightarrow 年龄$
⑤互相依赖,学号 ↔ 身份证号

主键可以决定所有非主属性

推理规则:

  • ①IR1自反规则:如果$X\supseteq Y$,那么$X→Y$,X包含Y,Y可以就是X本身,此时自己可以决定自己,$AB\supseteq A,AB→A$
  • ②IR2传递规则:${X→Y,Y→Z}\ |=X→Z$

类型:完全函数依赖、部分函数依赖、传递函数依赖

3.1完全函数依赖

完全函数依赖:$X→Y$,且对于 X 的任何一个真子集$X’$ ,都有 $X’\nrightarrow Y$,记为$X \stackrel{f}{\longrightarrow} Y$

上面表格中:X为(SNO,CNO)。SNO和CNO共同可以确定Grade,且SNO和CNO任意单独都不能确定Grade,写作$(SNO,CNO) \stackrel {f}{\longrightarrow } Grade$

3.2部分函数依赖

部分函数依赖:$X→Y$,且对于 X 的某一个真子集$X’$,有 $X’→Y$,记为$X \stackrel{p}{\longrightarrow} Y$

上面表格中:SNO单独一个可以确定SN,即X的子集可以确定Y,写作$(SNO,CNO) \stackrel{p}{\longrightarrow} SN$

3.3传递函数依赖

传递函数依赖:X → Y, Y → Z,且X不包含Y,Y不包含Z,$Y\nrightarrow X$则$X → Z$,记为$X \stackrel{t}{\longrightarrow} Z$

例如:学号可以决定系好,系好可以确定系主任。

闭包:F 中所有 X → A的A的集合称为X的闭包,记为$X^+$(即所有X可以决定的叫做X的闭包)

  • 例:设有关系模式 R(M,N,X,Y,Z),其$F={M → X,X → Z,Y → Z,N → Y, Z → M }$。计算M和N属性的闭包
  • ①M的闭包就是所有M能决定的列
  • ②M能决定自身M,X,Z,故$M^+=MXZ$
  • ③$N^+=N,Y,Z,X,M$

3.4求解候选码

候选码的求解:设有关系模式 R(U),F 是函数依赖集,可将其中的属性分为以下四类
(1)L 类:仅出现在函数依赖左边的属性(左类),如上题的N 
(2)R 类:仅出现在函数依赖右边的属性(右类),R类一定不在候选码内 
(3)N 类:在函数依赖左右两边均未出现的属性 
(4)LR 类:在函数依赖左右两边均出现的属性。如上题的M

所有L类的集合:UL;所有R类的集合:UR

关系模式R(M,N,X,Y,Z), F={M → X,X → Z,Y → Z,N → Y,Z → M }。求分类。 
①UL:N
②UR:Ø
③N类:Ø
④LR类:MXZY

下图断句:(拿着UL) 与 (UB的每个或多个)

4.范式

5种范式的包含关系:5NF ⊂ 4NF ⊂ BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF,从高到低,且上级范式兼容下级,第二范式兼容第一范式要求

4.1第一范式

第一范式 1NF:如果关系模式R的所有属性均为原子属性(不可再分),则称R属于第一范式。最起码条件,不能出现合并单元格

4.2第二范式

第二范式 2NF:如果关系模式R∈ 1NF(满足第一范式的基础上),且每个非主属性完全依赖于R的主码/候选码,则称R属于第二范式,不存在部分依赖

将关系模式选课(学号,课程号,姓名,成绩)规范化为 2NF

  • 主键:学号+课程号
  • 学+课→成绩,完全依赖
  • 学+课→姓名,部分依赖,单独学号就可以决定姓名,部分依赖
  • 拆成2个关系就变为第二范式:学生(学号,姓名) 选课(学号,课程号,成绩)

4.3第三范式

第三范式 3NF:如果关系模式R∈ 2NF(满足第二范式的基础上),且每个非主属性不传递依赖于R的主码/候选码,则称R属于第三范式

将关系模式学生(学号,姓名,系号,系主任)规范化为 3NF

  • 主键:学号,
  • 学号→姓名,完全依赖;学号→系号,完全依赖;学号→系主任,传递依赖
  • 将系主任提出来重新构造关系表:学生(学号,姓名,系号) ;系管理( 系号 , 系主任 )

4.4BC范式

BC范式 BCNF:如果关系模式R∈ 3NF(满足第二范式的基础上),且存在主属性非主属性的函数依赖(非主属性不能在左边,主属性不能在右边,非主→主属性一定为错),则称R属于 BC范式,简称 BCNF

假设该学校中每名教师只讲授一门课程,但一门课程可由多个教师讲授;每名学生可以选修多 门课程,每门课程可由多名学生选修,且每次选课都会有一条成绩记录。要求:将关系模式学生(学号,课号,教师,成绩)规范化为 BCNF

  • 主键:学号+课号
  • 学号+课号→成绩;学号+课号→教师,非主→主属性
  • 将教师单独新开一张表:学生(学号,课号,成绩);授课(教师,课号)