![](https://img-blog.csdnimg.cn/20210422184447160.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【 Python 基础 】
文章平均质量分 81
全面介绍Python基础知识,扎实基本功
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
HarkerYX
学习各类技术CSDN博客专家!
热爱日系指弹!
目前就职新能源汽车行业!
展开
-
《Python:学习导图》
《Python:学习导图》收费博客禁止转载、贩卖收益! 定期排查,发现一律举报封号! python中一切皆对象,就像linux中一切皆文件! 更新中 《Python全栈开发:Python 介绍》 《Python全栈开发:Python 变量》 《Python全栈开发:Python 运算符》 《Python全栈开发:Python 条件循环》 ...原创 2021-04-21 17:20:54 · 224 阅读 · 0 评论 -
《Python全栈开发:Python socketserver模块与源码解析》
一、socketserver 模块 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) 1. server类:2. request类:3. 继承关系:4. 以下述代码为例,分析socketserver源码:ftpserver=socketserver.ThreadingTCPServer(('127.0.0.1',80.原创 2021-03-24 17:55:19 · 124 阅读 · 0 评论 -
《Python全栈开发:Python 异步IO与selectors模块》
一、异步IO实现IO复用中的三个API(select、poll和epoll)的区别和联系 select,poll,epoll都是IO多路复用的机制,I/O多路复用就是通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知应用程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间原创 2021-03-24 18:04:20 · 133 阅读 · 0 评论 -
《Python全栈开发:Python 事件IO模型:select、epoll》
一、IO模型介绍同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文本文讨论的背景是Linux原创 2021-03-24 18:01:20 · 118 阅读 · 0 评论 -
《Python全栈开发:Python 协程》
一、Python 协程1、介绍 协程,又称微线程,纤程。英文名Coroutine 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序 子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同 协程看上去也是子原创 2021-04-02 16:09:40 · 121 阅读 · 0 评论 -
《Python全栈开发:Python 上下文协议模块(contextlib)》
一、上下文协议模块(contextlib)上下文管理器的任务是:代码块执行前准备,代码块执行后收拾1、如何使用上下文管理器: 打开一个文件,并写入"hello world" filename="my.txt"mode="w"f=open(filename,mode)f.write("hello world")f.close()发生异常时(如磁盘写满),就没有机会执行第5行。当然,我们可以采用try-finally语句块进行包装:writer=open(filenam原创 2021-04-02 16:07:44 · 276 阅读 · 0 评论 -
《Python全栈开发:Python 进程间通信》
进程间不仅需要数据共享,有时还需要数据在不同进程间传递Queue(1)最常用的通信方式是队列: multiprocessing.Queue(maxsize=0) ,建立共享的队列实例,可以采用一般队列的方式访问,通过put()方法增加元素,通过get()方法获取元素,maxsize:表示队列允许的最多元素个数,缺省为0,表示不限数量。 multiprocessing.JoinableQueue(maxsize=0) #建立可阻塞的队列实例,采用一般队列的方式访问,但可以通过XXX原创 2021-12-24 16:32:52 · 628 阅读 · 0 评论 -
《Python全栈开发:Python TCP 粘包现象》
一、粘包现象 只有TCP有粘包现象,UDP永远不会粘包 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提取数据,不能一次提取任意字节的数据,这一点和原创 2021-12-24 16:04:30 · 2001 阅读 · 0 评论 -
《Python全栈开发:Python TCP/UDP》
一、基于TCP的套接字 tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 tcp服务端 ss = socket() #创建服务器套接字ss.bind() #把地址绑定到套接字ss.listen() #监听链接inf_loop: #服务器无限循环 cs = ss.accept() #接受客户端链接 comm_loop: #通讯循环 cs.recv()/cs.send() #对话(接收与发原创 2021-12-24 15:52:21 · 1899 阅读 · 0 评论 -
《Python全栈开发:Python Socket》
一、基础知识学习socket一定要先学习互联网协议上图 我们没有看到Socket的影子,那么它到底在哪里呢?数据传输动图如下:1. Socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,s...原创 2021-03-24 17:56:26 · 108 阅读 · 0 评论 -
《Python全栈开发:Python 异常处理》
一、异常原创 2021-03-26 18:31:53 · 133 阅读 · 0 评论 -
《Python全栈开发:Python 元类》
一、元类原创 2021-03-24 17:51:01 · 117 阅读 · 0 评论 -
《Python全栈开发:Python 进程与线程》
一、进程二、线程原创 2021-03-24 17:54:00 · 117 阅读 · 0 评论 -
《Python全栈开发:Python GIL锁》
一、Python GIL锁In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since原创 2021-04-02 15:59:45 · 106 阅读 · 0 评论 -
《Python全栈开发:Python 线程同步(lock,event,semaphore,condition)》
一、并发二、同步原创 2021-03-24 17:58:48 · 172 阅读 · 0 评论 -
《Python全栈开发:Python 线程池(ThreadPoolExecutor)》
一、线程池(ThreadPoolExecutor)Python中已经有了threading模块,为什么还需要线程池呢,线程池又是什么东西呢?在介绍线程同步的信号量机制的时候,举得例子是爬虫的例子,需要控制同时爬取的线程数,例子中创建了20个线程,而同时只允许3个线程在运行,但是20个线程都需要创建和销毁,线程的创建是需要消耗系统资源的,有没有更好的方案呢?其实只需要三个线程就行了,每个线程各分配一个任务,剩下的任务排队等待,当某个线程完成了任务的时候,排队任务就可以安排给这个线程继续执行 这就是线程池转载 2021-04-05 16:44:50 · 1151 阅读 · 0 评论 -
《Python全栈开发:Python 队列(queue)》
一、Python 队列(queue)原创 2021-04-02 16:01:26 · 388 阅读 · 0 评论 -
《Python全栈开发:Python 多进程模块(multiprocessing)》
一、多进程模块(multiprocessing)1.多进程才是真并行python有一个非常重要的GIL(global interpreter lock,全局解释器锁)。python代码执行由python虚拟机(解释器主循环)来控制。对python虚拟机的访问由GIL控制,GIL保证同一时刻只有一个线程在执行 python虚拟机执行过程: 1、设置GIL 2、切换到一个线程去运行 3、运行,直至完成指定的字节码指令,或者线程主动让出控制 4、将该线程设置为睡眠状态 5、解锁GIL 6、.原创 2021-04-02 16:03:52 · 190 阅读 · 0 评论 -
《Python全栈开发:Python 包管理工具PIP》
一、各Python版本包管理工具PIP1、添加python2到系统环境变量打开,控制面板\系统和安全\系统,选择高级系统设置,环境变量,选择Path,点击编辑,新建,分别添加D:\Python\python27和D:\Python\python27\Scripts到环境变量 注意:python3安装时可以选择自动添加到系统环境变量,如未选择,方法和python2添加过程相同2、修改python.exe名字为python2.exe和python3.exe找到python2和python3的安装原创 2021-03-16 16:32:11 · 112 阅读 · 0 评论 -
《Python全栈开发:Python 类装饰器》
一、类装饰器装饰器是一种语法糖,可以看做是加了一层中间处理1. 函数的装饰器原创 2019-06-10 00:55:42 · 124 阅读 · 0 评论 -
《Python全栈开发:Python 类描述符》
一、类的描述符描述符就是一个具有绑定行为的对象属性,其属性访问将由描述符协议中的方法覆盖。这些方法为__get__、__set__和__delete__ 实现了__get__()、__set__()和__delete__() 中的其中任意一种方法的类称之为描述符 __get__(self, obj, value)用于访问属性。它返回属性的值,或者在所请求的属性不存在的情况下出现AttributeError异常 __set__(self, obj, type=None)将在属性分配操作...原创 2021-03-29 13:57:53 · 128 阅读 · 0 评论 -
《Python全栈开发:Python 类迭代器》
一、类的迭代器二、类的描述符原创 2021-03-24 17:48:26 · 124 阅读 · 0 评论 -
《Python全栈开发:Python 类内置属性与方法》
一、内置方法1. 如何查看类有哪些内置方法和属性原创 2019-05-24 14:13:24 · 142 阅读 · 0 评论 -
《Python全栈开发:Python 反射、动态导入模块》
一、反射原创 2021-03-24 15:08:07 · 162 阅读 · 0 评论 -
《Python全栈开发:Python 封装、多态》
一、封装二、多态原创 2021-03-24 15:07:28 · 111 阅读 · 0 评论 -
《Python全栈开发:Python 继承》
一、继承什么是继承? 拿我们人来说,爸爸和儿子,儿子继承了爸爸,叫法:儿子就是爸爸的子类,爸爸是儿子的父类。爷爷爸爸儿子,爷爷是爸爸的父类,爸爸是儿子的父类,儿子是爸爸的子类,爸爸是爷爷的子类。(爸爸是儿子的直接父类,爷爷是儿子的间接父类1.为什么要有继承?多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可 此处的多个类称为子类(派生类),单独的这个类称为父类(基类或超类)。可以理解为:“子类 is a 父类” Python中继.原创 2021-03-24 14:23:31 · 108 阅读 · 0 评论 -
《Python全栈开发:Python 组合》
一、面向对象组合组合指的是在一个类中以另一个类的对象作为数据属性,称为类的组合好比人,由手、脚、头、身体组成,那么这些都可以单独定义一个类,人类中属性就有了手类,脚类等构成原创 2019-06-10 00:54:28 · 100 阅读 · 0 评论 -
《Python全栈开发:Python 类方法属性》
一、类与对象属性二、类与对象方法原创 2021-03-22 18:06:56 · 122 阅读 · 0 评论 -
《Python全栈开发:Python 类与对象》
一、类与对象类:具有相同属性和技能的一类事物 对象:具体的类的表现,具体的实实在在的一个实例 人类是一个类,每个人都是人类的一个对象,狗是一个类,大街上的一个流浪狗就是狗类的一个对象1. python 是一门面向对象语言,采用语法 Class 去创建一个类'''1.数据属性2.函数属性'''class Chinese: '这是一个中国人的类' '''类分两部分: 数据属性部分,方法(函数)部分''' # 这里是类的数据属性,每个对象共有的部分 da原创 2021-03-22 18:03:14 · 113 阅读 · 0 评论 -
《Python全栈开发:Python 面向对象设计概念》
一、什么是面向机器最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数 据。简单来说,就是直接编写 0 和 1 的序列来代表程序语言。例如:使用 0000 代表 加载(LOAD),0001 代表 存储(STORE)等。机器语言由机器直接执行,速度快,但一个很明显的缺点就是:写起来实在是太困难了,一旦你发现自己写错了,改起来更蛋疼!这样直接导致程序编写...原创 2019-06-10 00:53:36 · 114 阅读 · 0 评论 -
《Python全栈开发:Python 项目结构规范》
一、为什么要设计好目录结构?一类同学认为,这种个人风格问题"无关紧要"。理由是能让程序work就好,风格问题根本不是问题。另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性。一个不好读的项目,不管其实现的逻辑复不复杂,都会耗费比较长的时间去理解它想表达的意思。"项目目录结构"其实也是属于"可读性和可维护性"的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点:...原创 2019-05-27 17:26:32 · 528 阅读 · 0 评论 -
《Python全栈开发:Python 模块(xml)》
一、什么是XMLXML 指可扩展标记语言(eXtensibleMarkupLanguage)。XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但j...原创 2019-05-23 17:47:58 · 244 阅读 · 0 评论 -
《Python全栈开发:Python 模块(random)》
一、random模块random是生成随机数模块1. 导入random模块import random2. random()random()方法返回随机生成的一个浮点型(float)实数,它在 [0,1) 范围内。print(random.random()) # 0.059148547747966523. randint(x,y)randint()方法返...原创 2019-05-23 17:47:49 · 223 阅读 · 0 评论 -
《Python全栈开发:Python 模块(json,pickle,shelve)》
一、json介绍JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直...原创 2019-05-23 17:47:15 · 227 阅读 · 0 评论 -
《Python全栈开发:Python 模块(time,datatime)》
一、 time模块在Python中,通常有这几种方式来表示时间:时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素共九个元...原创 2019-05-23 17:47:06 · 236 阅读 · 0 评论 -
《Python全栈开发:Python 模块(os,sys)》
一、os模块os.path 模块主要用于获取文件的属性。是与操作系统交互的一个接口。1. 导入os模块import os2. 以下是 os.path 模块的几种常用方法:方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list...原创 2019-05-23 17:46:42 · 245 阅读 · 0 评论 -
《Python全栈开发:Python 包介绍》
一、什么是包包是一种通过使用‘.模块名’来组织python模块名称空间的方式。包就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来。创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包的本质就是一种模块包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来。随着功能越写越多,我们无法将所以...原创 2019-05-23 17:46:32 · 252 阅读 · 0 评论 -
《Python全栈开发:Python 模块介绍》
一、模块介绍在计算机程序的开发过程中,随着程序的发展,功能越来越多,在一个文件里代码就会越来越长,越来越不容易维护为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用。模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。在Python...原创 2019-05-23 17:46:23 · 264 阅读 · 0 评论 -
《Python全栈开发:Python 文件处理》
一、介绍计算机系统分为:计算机硬件,操作系统,应用程序三部分。我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将...原创 2019-05-28 18:00:10 · 222 阅读 · 0 评论 -
《Python全栈开发:Python 函数式编程》
一、函数式编程介绍函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态...原创 2019-05-29 11:50:42 · 209 阅读 · 0 评论