python学习
文章平均质量分 91
魏森林
这个作者很懒,什么都没留下…
展开
-
python垃圾回收机制
python垃圾回收机制一、引入二、什么是垃圾回收机制?三、为什么要使用垃圾回收机制?四、理解GC原理需要储备的知识4.1 堆区与栈区4.2 直接引用与间接引用五、垃圾回收机制原理分析5.1 引用计数5.2 引用计数的问题与解决方案5.2.1 问题一:循环应用5.2.2 解决方案:标记-清除5.2.3 问题二:效率问题5.2.4 解决方案:分代回收一、引入解释器在执行到定义变量的语法时,hi申请内存空间来存放变量的值,而内粗你的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了原创 2021-02-10 21:41:17 · 267 阅读 · 1 评论 -
week6 day5 协程和IO模型
week6 day5 协程和IO模型一、协程二、IO模型一、协程协程二、IO模型IO模型原创 2021-03-03 19:34:27 · 208 阅读 · 1 评论 -
week6 day4 并发编程之多线程 代码
week6 day4 并发编程之多线程 代码一、threading模块介绍二、开启线程的两种方式2.1 方式一2.2 方式二:自定义类三、在一个进程下开启多个线程与在一个进程下开设多个子进程的区别四、练习4.1 练习一:之前客户端和服务端并发4.2 练习二:三个任务,一个接受用户输入,一个将用户输入的内容转换成大写,一个将格式化后的结果存入文件五、线程相关的其他方法六、守护线程七、Python GIL(Global Interpreter Lock)7.1 介绍7.2 GIL介绍7.3 GIL与Lock7.原创 2021-03-03 18:57:07 · 653 阅读 · 1 评论 -
week6 day4 并发编程之多线程 理论
week6 day4 并发编程之多线程 理论一、什么是线程二、线程的创建开销小三、线程和进程的区别四、为何要用多线程五、多线程的应用举例六、经典的线程模型(了解)七、POSIX线程(了解)八、在用户空间实现的线程(了解)九、在内核空间实现的线程(了解)十、用户级和内核级线程的对比(了解)十一、混合实现(了解)十二、线程小故事一、什么是线程二、线程的创建开销小三、线程和进程的区别四、为何要用多线程五、多线程的应用举例六、经典的线程模型(了解)七、POSIX线程(了解)八、在用户空间实现的线程(原创 2021-03-01 21:05:49 · 366 阅读 · 0 评论 -
week6 day3 并发编程之多进程 代码
week6 day3 并发编程之多进程 代码一、multiprocessing模块介绍二、Process类的介绍2.1 创建进程的类2.2 参数介绍2.3 方法介绍2.4 属性介绍三、Process类的使用3.1 创建并开启子进程的两种方式3.2 进程之间的内存空间是隔离的3.3 练习:把之前所学的socket通信编程并发的形式3.4 Process对象的join方法3.5 Process对象的其他方法或者属性(了解)3.6 僵尸进程与孤儿进程3.6.1 僵尸进程3.6.2 孤儿进程四、守护进程五、进程同步原创 2021-03-02 18:38:22 · 767 阅读 · 1 评论 -
week6 day3 并发编程之多进程 理论
week6 day3 并发编程之多进程 理论一、什么是进程?二、进程与程序的区别三、并发与并行3.1 并发:是伪并行,即看起来是同时运行。单个CPU+多道技术就可以实现并发3.2 并行:同时运行,只有具备多个CPU才能实现并行四、同步/异步 and 阻塞/非阻塞(重点)五、进程的创建(了解)六、进程的终止(了解)七、进程的层次结构八、进程的状态九、进程并发的实现一、什么是进程?进程:正在进行的一个过程或者说一个任务。而负责任务执行的则是CPU。举例(单核+多道,实现多个进程的并发执行):egon在一个原创 2021-03-01 22:20:33 · 853 阅读 · 5 评论 -
week6 day2 网络编程之socket的使用和处理粘包问题
week6 day2 socket的使用一. socket是什么二. 套接字发展史及分类(了解)三. 套接字工作流程和语法规范四. 基于TCP的套接字一. socket是什么socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一个接口。在设计模式中,socket其实是就是一个门面模式,它把复杂的TCP/IP协议隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket取组织数据,以符和指定的协议。所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了原创 2021-01-16 17:53:59 · 246 阅读 · 1 评论 -
week6 day1 网络编程之扫盲知识与套接字介绍
week6 day1 网络编程之套接字介绍一. 客户端/服务器架构二. OSI七层三. tcp/ip五层模型讲解3.1 物理层3.2 数据链路层3.3 网络层3.4 传输层一. 客户端/服务器架构硬件C/S架构(打印机)软件C/S架构互联网中到处都是C/S架构(B/S架构也是C/S架构的一种)eg 腾讯作为服务端为你提供视频,但是得下载客户端才能看它的视频我们学习socket模块就是为了完成C/S架构的开发二. OSI七层一个完整的计算机系统是由硬件,操作系统,应用软件三者组成的。具备了原创 2021-01-14 16:44:59 · 269 阅读 · 1 评论 -
week5 day5 异常处理
week5 day5 异常处理一. 什么是异常?二. 如何处理异常?三. 异常其他# 这是我们第一次使用捕捉异常的情况:res=(i for i in range(4))while True: try: next(res) except StopIteration: print('取干净了') break一. 什么是异常?异常是错误发生的信号。程序一旦出错就会产生一个异常。如果该异常没有被处理,该异常就会被抛出,程序的运行也会随之停止。错误分为两种:语法错误和逻辑错误。语法错原创 2021-01-14 14:57:17 · 141 阅读 · 0 评论 -
元类、单例模式、相关练习
单例模式原创 2021-03-10 09:05:13 · 125 阅读 · 0 评论 -
week5 day4 面向对象编程高级
week5 day4 面向对象编程高级一. 反射1.1 反射机制的实现原理1.2 四个内置函数的使用二. 内置方法在此之前,我们先重申一个知识点,python是一门开源,强类型,动态,解释型语言。开源和解释型在之前的博客中已经介绍过了,这里我们关于动态再多说两句,与c语言等静态语言不同。静态语言在开始执行前必须规定好数据类型var x int=18,程序在执行的时候无需分析数据的类型,直接把数据拿来用就可以了。而python作为动态语言,只有当程序运行到执行变量赋值语句的时候才知道变量到底是什么类型的数据原创 2021-01-13 15:49:35 · 316 阅读 · 1 评论 -
week5 day1-3 面向对象编程
week5 day1 面向对象编程原创 2021-01-11 08:45:51 · 684 阅读 · 5 评论 -
week4 day3/4 常用模块
week4 day3/4 常用模块一. 正则模块 import re(字符串匹配)1.1 基本操作和工作原理1.2 应用二. 序列化模块 import json/pickle(存档和跨平台共享数据)2.1 json模块2.2 pickle模块2.3 ujson模块(猴子补丁)三. 随机模块 import random(验证码)四. 哈希算法模块 import hashlib(检验文件传输完整性和密码加盐)五. 子进程模块 import subprocess六. os/sys模块 import os/sys(原创 2021-01-07 16:55:19 · 588 阅读 · 2 评论 -
week4 day2 包的基本使用(了解)和日志模块(重点)
week4 day2 包的基本使用(了解)和日志模块(重点)一. 区分python文件两种用途二. 包的基本使用(了解)三. 循环导入问题四. 模块的搜索路径和优先级五. 文件目录开发规范一. 区分python文件两种用途python文件有两种使用途径。当作执行文件运行被当作模块导入执行我们利用内置的__name__方法来使我们可以区分python文件的两种使用途径:如果文件被直接执行,__name__==__main__如果文件被当作模块导入,__name__==模块名因此我们在文原创 2021-01-05 18:02:38 · 131 阅读 · 2 评论 -
week4 day1 初识模块
week4 day1初识模块一. 模块介绍1.1 什么是模块?1.2 为何要使用模块?二. 模块的使用2.1 import2.2 from...import...三. 循环导入问题四. 模块的搜索路径和优先级一. 模块介绍1.1 什么是模块?模块是功能的集合体。可以放在文件中,也可以放在文件夹中。模块大致分为四种:模块分类掌握程度一个py文件就是一个模块,文件名叫test.py,模块名叫test。重点掌握在python2解释器中,包含__init__.py的文件夹称之为原创 2021-01-04 15:18:07 · 190 阅读 · 7 评论 -
week3 day4 函数收尾
week3 day4函数收尾一. 三元表达式二. 生成式2.1 列表生成式2.2 字典生成式2.3 生成器表达式三. 函数的递归调用四. 匿名函数五. 面向过程编程一. 三元表达式对于我们平时所写的行数较少的代码,可以把他改写成三元表达式的形式。x=11y=12if x>y: print(x)eles: print(y)可以用一行解决。res=x if x>y else yprint(res)即条件一元,条件成立的返回值一元,条件不成立的返回值一元。二. 生成式2原创 2021-01-03 21:17:04 · 507 阅读 · 4 评论 -
week3 day3 迭代器和生成器
week3 day3迭代器和生成器一. 迭代器1.1 什么是迭代器?1.2 为何要使用迭代器?1.3 如何使用迭代器?1.4 迭代器例子二. 生成器2.1 什么是生成器?2.2 为何要用生成器?2.3 怎么使用生成器?一. 迭代器我们之前在学习流程控制的时候学习过for循环,那么for循环的内在工作原理是什么呢?今天,我们将先来探讨for循环的工作原理。我们所学习的数据类型中,有很多数据类型都有内置的__iter__方法。''.__iter__()[].__iter__()().__iter__原创 2020-12-30 15:22:05 · 292 阅读 · 0 评论 -
week3 day2函数高级用法
week3 day2函数高级用法一. 函数对象二. 函数嵌套2.1 函数的嵌套定义2.2 函数的嵌套调用三. 名称空间与作用域3.1 名称空间3.2 作用域四. 闭包函数五. 装饰器5.1 什么是装饰器?5.2 为何要用装饰器?5.3 怎么使用装饰器?一. 函数对象函数和变量有相通之处。变量的使用原则是先定义后引用,函数的使用原则是先定义后使用。变量名绑定了变量值对应的内存空间的内存地址。函数名绑定了函数体代码对应的内存空间的内存地址。因此,适用于变量名使用的场景也适用于函数名的使用场景。赋值变原创 2020-12-29 15:40:56 · 413 阅读 · 2 评论 -
week3 day1 函数介绍和函数的参数
week3 day1函数介绍和函数的参数一. 函数介绍1.1 什么是函数?1.2 为何要使用函数?1.3 如何使用函数?1.4 定义函数的三种方式1.5 函数的三种调用方法二. 函数参数2.1 参数的分类——形参和实参2.2 可变长系列2.2.1 在形参的应用2.2.2 在实参的应用2.3 函数返回值一. 函数介绍1.1 什么是函数?函数就是盛放代码的容器。具备某一功能的工具。----->函数事先准备工具的过程。----->函数的定义遇到应用场景拿来就用。----->函数的调用原创 2020-12-28 15:52:45 · 184 阅读 · 2 评论 -
week2 day4 字符编码与文件管理
week2 day4 字符编码与文件管理一. 字符编码1.1 储备知识1.2 什么是字符编码1.3 字符编码表的发展史(了解)1.4 在存储过程不同位置的存储格式1.5 常见的文件乱码的两种原因及解决方法二. 文件管理2.1 基本情况2.2 基本操作2.2.1 造字典的三种方式(***)2.2.3 成员运算 in和 not in(*****)2.2.5 删除(*****)在计算机的三层体系结构中,最上层是用户/应用程序,中间层是操作程序,最底层是计算机硬件(cpu/内存/硬盘)。我们位于用于/应用程序那一原创 2020-12-25 15:43:38 · 261 阅读 · 0 评论 -
week2 day3 基本数据类型及其内置方法(tuple,dict,set)|||所有数据类型基本操作汇总
week2 day3基本数据类型及其内置方法(tuple,dict,set)|||所有数据类型基本操作汇总一. 元组类型(tuple)1.1 基本情况1.2 str常用操作1.2.1 索引和切片(*****)1.2.2 计算长度(*****)1.2.3 成员运算 in 和 not in(*****)1.2.4 循环(****)1.2.5 需要了解的元组内置方法二. 字典类型2.1 基本情况2.2 基本操作2.2.1 造字典的三种方式(*****)2.2.2 计算长度(*****)2.2.3 成员运算 in和原创 2020-12-23 16:53:31 · 481 阅读 · 0 评论 -
内容补充:列表在内存中如何存储的?什么是浅拷贝?什么是深拷贝?
浅拷贝是把原列表第一层的内存地址拷贝给了新列表。如果原列表存的都是不可变数据类型,那不会出现问题;但是如果原列表包括可变数据类型,那就会出现问题,因为可变数据类型的内存两个列表是共享的。要想copy得到的新列表与原列表的改操作完全独立开,必须有一种可以区分开可变类型与不可变类型的copy机制,这就是深copy。深copy是新瓶装老酒...原创 2020-12-23 14:37:24 · 184 阅读 · 0 评论 -
week2 day2 基本数据类型及其内置方法(int,float,str,list)
week2 day2基本数据类型及其内置方法(int,float,str,list)一. 数值类型(int+float)二. 字符串类型2.1 基本情况2.2 str常用操作2.2.1 索引和切片(*****)2.2.2 计算长度(*****)2.2.3 成员运算 in 和 not in(*****)2.2.4 strip(*****)和rstrip(****)和lstrip(****)2.2.5 split(*****)和rsplit(****)2.2.6 replace(****)2.2.7 join(原创 2020-12-22 15:06:53 · 666 阅读 · 2 评论 -
week2 day1 while循环和for循环
week2 day1流程控制之while循环和for循环一. while循环1.1 while循环基本语法1.2 死循环(while条件永远为True)1.3 如何终止while循环1.4 嵌套多层的while循环如何终止1.5 while+continue1.6 while+else二. for循环2.1 for循环的基本语法2.2 range()硬盘没有改操作,任何基于数据的改操作都是用新数据覆盖旧数据的过程。而对于数据的删除过程可以理解成将内存(大房子)中的一部分存储空间(小屋子)显示可以存储(挂上原创 2020-12-21 15:35:38 · 231 阅读 · 2 评论 -
week1 day4 流程控制之 if 判断和自定义输入输出
week1 day4 流程控制之 if 判断和自定义输入输出一. 流程控制之if判断1.1 if 判断基本概念1.2 代码规范(完整语法)1.2.1 单分支 if1.2.2 双分支 if...else...1.2.3 多分支 if...elif...else...二. 自定义输入输出2.1 自定义输入2.2 自定义输出(格式化输出)在集成开发环境pycharm中,书写的代码pycharm会进行逻辑错误检查,和语法错误检查。语法错误检查随着代码的书写会一直进行。而逻辑错误只会在运行代码的时候检查。存在语法原创 2020-12-18 15:57:44 · 118 阅读 · 0 评论 -
week1 day3 python基础语法(内存管理机制)
week1 day3 python基础语法python基础语法一. 变量1.1 变量使用原则1.1.1 定义阶段1.1.2 引用阶段1.2 变量命名规范1.3 变量值1.3.1 变量值的两大特征1.3.2 内存管理二. 基本数据类型2.1 整型 int2.2 浮点型 float2.3 字符串 str2.4 列表 list2.5 字典 dict2.6 布尔值 bool三. 基本运算符3.1 算术运算符3.2 比较运算符3.3 赋值运算符3.4 逻辑运算符程序=数据+功能数据是程序的核心。存数据是为了取数原创 2020-12-17 17:12:11 · 163 阅读 · 3 评论 -
week1 day2 编程语言,python解释器和pycharm
week1 day2 初识python初识python一.编程语言分类(***)1.1编程语言三大分类1.2 高级语言进一步分类1.3 总结二.python介绍(***)2.1 python简介2.2 python解释器的发展三.安装多版本python解释器(*****)四.第一个python程序(******)4.1 交互式环境下直接输入代码4.2 交互式环境下运行文件4.3 运行python程序的三个阶段4.4 集成开发环境IDE五.python基础语法(注释和变量)(*****)5.1 注释5.2 变原创 2020-12-16 16:07:16 · 157 阅读 · 0 评论