一、异常
1.1、什么是异常
异常是程序运行时,发生错误,产生的信号,会抛出异常,程序运行终止
1.2、异常处理的三个特征
1.异常的追踪信号
2.异常的类型
3.异常的内容
1.3、为什么要处理异常
为了增强程序的健壮性,即使程序运行时出错了,也不会终止程序,而是捕捉异常。并且将错误信息记录到日志中
1.4、怎么处理异常
异常主要分成两种,分别是逻辑上的错误以及语法上的错误
1.4.1、语法上的错误 SyntaxError
通常pycharm在程序编写是会直接标注出来,必须在程序运行时就改正
1.4.2、逻辑上的错误
逻辑上的错误又分为两种:
1.错误发生的条件是可以预知的
解决方案:可以用if来进行判断
age=input('>>: ').strip() # 输入的只要不是数字就会出错 if age.isdigit(): age=int(age) if age > 18: print('猜大了') elif age < 18: print('猜大了') else: print('猜对了') else: print('必须输入数字')
2.错误发生的条件是无法预知的
解决方案:可以使用try,except加上(异常类型)以及finally进行处理
try:try内放置可能会出错的程序
except:相当于if,进行判断,后面跟着异常类型 并且赋值给e
异常类型主要运用到以下几种:
1.IndexError:索引异常
2.NameError:变量名异常
3.KeyError:字典异常
4.Exception:万能异常
finally:不处理异常,不管是否有异常,都会执行程序,通常用来保存回收系统资源的代码
注:except可以和else进行配合使用
try可以和finally直接使用
print('start...') try: print('1111111111') l = ['aaa', 'bbbb'] l[3] # 抛出异常IndexError,该行代码同级别的后续代码不会运行 print('2222222222') xxx print('33333333') dic = {'a': 1} dic['aaa'] except (IndexError, NameError) as e: print('异常的信息: ', e) except KeyError as e: print('字典的key不存在: ', e) except Exception as e: # 万能异常 print('所有异常都可以匹配的到') finally: # 不处理异常,无论是否发生异常都会执行finally的子代码 print('====》》》》》应该把被检测代码中回收系统资源的代码放到这里') print('end....')
二、网络编程
2.1、cs架构与bs架构
客户端架构Browser:客户端软件,操作系统,计算机硬件
服务端架构Server:服务端短剑,操作系统,计算机硬件
客户端与服务端之间使用物理介质进行连接
2.2、网络通信
网络=物理链接介质+互联网通信协议
通信:跨地域数据传输(网络存在的意义)
2.3、osi七层协议
七层协议又称为四层协议以及五层协议,区别在于使用者的使用部分,而我们通常使用的是五层协议
协议=头部(头部包含着目标地址以及源地址)+数据部分
头部相当于包裹外的箱子,和数据绑定在一起
2.4、五层协议
数据的封装,就是由应用层的数据开始加头之后,成为下一层的数据。
最终到物理层的位置通过交换机传递给其他计算机
2.4.1、物理层
一组数据称之为:一位
职责:以二进制的形式传递电信号,所以单纯的电信号毫无意义,必须要将其进行分组
2.4.2、数据链路层
一组数据称之为:一帧
职责:Ethernet 以太网协议,但凡介入互联网的计算机必须至少要有一块网卡,每块网卡都有独一无二的地址,该地址称之为Mac地址
所以,数据链路层里面的数据帧,使用的头(源地址以及目标地址)是Mac地址,数据则是网络层传递过来的内容
功能:以太网协议的工作方式是广播,相当于在局域网里面传递消息,所有人均可见
2.4.3、网络层
一组数据称之为:一包
职责:划分广播域,凡是需要接通到外部的广播域,一定需要一个网关帮内部的计算机转发包到公网
网关与外界通信走的是路由协议
所以,网络层里面的一包,使用的头(原地址以及目标地址)是IP地址,数据是传输层传送过来的内容
2.4.3.1、ipv4地址
一个合法的ipv4地址 = IP地址/子掩码地址
IP地址和子掩码地址均为4个32位数字组成,通过装换成二进制的形式,使用AND算法,求他们两个的与值(都是1,则为1,否则为0),从而你判断是否是一个域里面
所以IP协议的作用就是为每一台计算机分配IP地址,以及确定哪些地址在同一个子网内
2.4.3.2、ARP协议
ARP协议:地址解析协议,将IP地址解析成Mac地址
计算机的底层通信是基于Ethernet,以太网协议的Mac地址通信,Mac地址是网卡地址,具有唯一性
在事先知道对方计算机IP的前提下,我们可以判断IP地址是否相同:
1.当IP地址相同时:
ARP协议:
目标IP(目标计算机)和源IP一致,源Mac已知目标Mac未知的情况下,发送端Mac会直接在局域网内发送
FF:FF:FF:FF:FF:FF 源IP 目标IP 数据
目标IP接收到信息将会返回一个Mac地址,就能直接发送了
2.在IP地址不同时:
ARP协议:
目标协议(目标计算机)和源IP不一致,源Mac已知,目标Mac将会直接指向网关的Mac地址,由网关向公网发布IP地址,
FF:FF:FF:FF:FF:FF 原IP地址 目标IP地址 数据
待目标IP地址返回Mac,在继续发送
所以说:ip地址+mac地址=》标识全世界范围内独一无二的一台计算机,
或者说:ip地址=》标识全世界范围内独一无二的一台计算机