自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 tcp/ip协议(族)

tcp/ip协议(族)早期的计算机网络,都是由各厂商自己规定一套协议,IBM、Apple和Microsoft都有各自的网络协议,互不兼容为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这个目标,互联网协议族(Internet Protocol Suite)就是通用协议标准因为互联网协议包含了上百种协议标准,但是最重要的两个协议是TCP和IP协议,所...

2019-11-16 21:52:18 185

原创 单进程、单线程、非阻塞、长连接与epoll

长/短连接操作过程短连接操作步骤:建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接长连接操作步骤:建立连接——数据传输…(保持连接)…数据传输——关闭连接单进程、单线程、长连接实现非阻塞服务器在accept 等待客户端建立连接的时候,默认是堵塞的,我们只能为当前客户端服务结束之后才能为下一个客户端服务如果为当前客户端服务时间较长,其他客户端就得等待很久,这会大大降...

2019-11-16 21:18:07 367

原创 tcp的3次握手、4次挥手

客户端与服务器之间通信:如果用的是udp,客户端给服务器发送的数据到底收没收到,客户端是不知道的,udp是直接发送如果用的是tcp,其一大特点是,客户端的操作系统底层会和服务器的操作系统底层建立连接,一方发送的数据,另一方会回复已收到,tcp在发送数据之前,会先建立链接,即tcp的三次握手例如,客户端要给服务器发送一个数据“hello”客户端先发送一个数据包告诉服务器:我要链接你(今晚...

2019-11-15 19:52:52 126

原创 http协议的基础知识

HTTP协议简介概念浏览器和服务器之间基于tcp的超文本传输协议浏览器请求格式# /标记着浏览器请求的内容,表示url的路径,HTTP/1.1表示http协议的版本为1.1GET / HTTP/1.1# 表示服务器的ip和端口Host: 127.0.0.1:8080# 长链接Connection: keep-aliveCache-Control: max-age=0Upg...

2019-11-15 19:51:21 145

原创 多任务-携程

1、协程协程,又称微线程,英文名Coroutine。1.1 协程是啥协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元,为啥说它是一个执行单元,因为它自带CPU上下文,这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程,只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的通俗的理解:在一个线程中的某个函数,可以在任何地方保存当前函数的一...

2019-11-08 19:11:21 172

原创 生成器

1、生成器1.1 生成器利用迭代器可以在每次迭代获取数据时按照特定的规律进行生成但是在实现一个迭代器时,关于当前迭代到的状态需要自己记录,进而才能根据当前状态生成下一个数据为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator),生成器是一类特殊的迭代器1.2 创建生成器方法法1:只要把列表推导式的 [ ] 改成 ( )...

2019-11-08 17:20:58 80

原创 迭代器

可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for…in…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代想要使用for循环,先看看对象是否可以迭代创建这个对象的类中是否有__iter__方法,有则该对象为可迭代对象iter函数会主动调用可迭代对象的__...

2019-11-08 16:33:20 95

原创 进程、线程、协程对比

进程、线程对比:功能:都能完成多任务进程:一太电脑可以运行多个QQ线程:一个QQ可以开多个会话窗口定义:进程:系统进行资源分配和调度的一个独立单位线程:cpu调度和分派的一个基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资...

2019-11-08 15:49:13 92

原创 多任务-进程

进程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。进程的状态就绪态:运行的条件都已经慢去,正在等在cpu执行执行态:cpu正在执行其功能等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态代码import timeimport multiprocessingdef ...

2019-11-08 15:25:42 103

原创 多任务-线程

多任务介绍有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的试想,如果把唱歌和跳舞这2件事情分开依次完成的话,估计就没有那么好的效果了(想一下场景:先唱歌,然后在跳舞,O(∩_∩)O哈哈~)多任务的概念什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业...

2019-11-07 22:20:45 86

原创 udp-tcp注意点

1、为什么tcp/udp服务器一般情况下都需要绑定ip、port信息,客户端一般不绑定ip、port信息作为服务器一方一般用来接收客户端的请求,并返回数据给客户端,如果不绑定ip、port信息,客户端将无法链接到服务器,无法向服务器发送请求,就像你要给一个人打电话,却不知道对方的电话号码作为客户端一般不绑定ip、port信息,因为是主动链接服务器,所以只要确定好服务器的ip、port等信息就...

2019-11-07 22:03:10 256

原创 基于python下的socket(udp-tcp)介绍

1、socket简介1.1 不同电脑上的进程之间如何通信在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用进程(进程)。这样利用ip地址,协议,端口就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交...

2019-11-06 20:23:57 160

原创 网络通信概述

1、什么是网络网络就是一种辅助双方或者多方能够连接在一起的工具2、使用网络的目的为了联通多方进行通信,即把数据从一方传递给另外一方,为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能。使用网络能够把多方链接在一起,然后可以进行数据传递所谓的网络编程就是,让不同的电脑上的软件能够进行数据传递,即进程之间的通信3、ip地址地址就是用来标记地点的...

2019-11-06 14:12:08 726

原创 pygame简单设计飞机大战游戏

基础知识此博客为初学者讲解飞机大战流程,基础知识较多,其中的代码头部都去掉了**# coding=gbk**这句代码,自行添加哈整个代码用到的素材下载链接:1、游戏的初始化和退出要使用 pygame 提供的所有功能之前,需要调用 init 方法在游戏结束前需要调用一下 quit 方法方法说明pygame.init()导入并初始化所有 pygame 模块,使...

2019-11-03 15:57:44 1202 4

原创 python之eval函数

eval 函数eval()函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果# 基本的数学计算In [1]: eval("1 + 1")Out[1]: 2# 字符串重复In [2]: eval("'*' * 10")Out[2]: '**********'# 将字符串转换成列表In [3]: type(eval("[1, 2, 3, 4, 5]"))...

2019-11-02 21:57:21 200

原创 python之文件

文件的基本操作序号函数/方法说明01open打开文件,并且返回文件操作对象02read将文件内容读取到内存03write将指定内容写入文件04close关闭文件open 函数负责打开文件,并且返回文件对象read/write/close 三个方法都需要通过 文件对象 来调用open 函数的第一个参数是要打开的文件名(文...

2019-11-02 21:44:21 159

原创 python之模块和包

模块和包1、模块1.1 模块的概念模块是 Python 程序架构的一个核心概念每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块模块名 同样也是一个 标识符,需要符合标识符的命名规则在模块中定义的 全局变量 、函数、类 都是提供给外界直接使用的 工具模块 就好比是 工具包,要想使用这个工具包中的工具,就需要先 导入 这个模块1.2 模块的两种导入方式1)...

2019-11-02 20:04:52 87

原创 python之异常

异常1、异常的概念程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常程序停止执行并且提示错误信息 这个动作,我们通常称之为:抛出(raise)异常程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发事件做集中的处理,从而保证程序的 稳定性和健壮性2、捕获异常2.1 简单的捕获异常语法...

2019-11-02 16:55:28 69

原创 python之单例

单例1、单例设计模式设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设计模式目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例每一次执行 类名() 返回的对象,内存地址是相同的2、new 方法使用 类名() 创...

2019-11-02 16:19:48 76

原创 python之类属性和类方法

类属性和类方法1、类的结构1.1 术语 —— 实例1.使用面相对象开发,第 1 步 是设计 类2.使用 类名() 创建对象,创建对象 的动作有两步:1) 在内存中为对象 分配空间2) 调用初始化方法 __init__ 为 对象初始化3.对象创建后,内存 中就有了一个对象的 实实在在 的存在 —— 实例因此,通常也会把:1.创建出来的 对象 叫做 类 的 实例2.创建对象的 ...

2019-11-02 15:36:48 339

原创 python之多态

多态面向对象三大特性1.封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中定义类的准则2.继承 实现代码的重用,相同的代码不需要重复的编写设计类的技巧子类针对自己特有的需求,编写特定的代码3.多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果多态 可以 增加代码的灵活度以 继承 和 重写父类方法 为前提是调用方法的技巧,不会影响到类的内部设...

2019-11-02 11:19:09 82

原创 python之继承

继承面向对象三大特性1.封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中2.继承 实现代码的重用,相同的代码不需要重复的编写3.多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度1、单继承1.1 继承的概念、语法和特点继承的概念:子类 拥有 父类 的所有 方法 和 属性1) 继承的语法class 类名(父类名): pass子类 继...

2019-11-02 10:59:57 94

原创 python之私有属性和方法

私有属性和私有方法1、应用场景及定义方式应用场景在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到私有属性 就是 对象 不希望公开的 属性私有方法 就是 对象 不希望公开的 方法定义方式在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法class Women: def __i...

2019-11-01 20:55:09 174

原创 python之面向对象基础语法

1、dir 内置函数在 python 中 对象几乎是无所不在的,我们之前学习的 变量、数据、函数 都是对象在 python 中可以使用以下两个方法验证:在 标识符 / 数据 后输入一个 .,然后按下 TAB 键,iPython 会提示该对象能够调用的 方法列表使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法提示 __方法名__ 格式的方法是 pyt...

2019-11-01 20:36:40 260

原创 python之函数递归

函数的递归函数调用自身的 编程技巧 称为递归递归函数的特点特点一个函数 内部 调用自己函数内部可以调用其他函数,当然在函数内部也可以调用自己代码特点函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同当 参数满足一个条件 时,函数不再执行这个非常重要,通常被称为递归的出口,否则 会出现死循环!示例代码def sum_numbers(num)...

2019-11-01 16:01:50 351

原创 python之多值参数

多值参数定义支持多值参数的函数有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数python 中有 两种 多值参数:参数名前增加 一个 * 可以接收 元组参数名前增加 两个 * 可以接收 字典一般在给多值参数命名时,习惯使用以下两个名字*args —— 存放 元组 参数,前面有一个 ***kwargs —— 存放 字典 参数,...

2019-11-01 15:54:23 243

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除