随笔分类 - python
摘要:windows下python多版本安装共存 本地已经安装了python3.6版本,现在想要安装python3.9版本,来学习一下python新版本特性。 下载安装python3.9 官网下载 下载成功后,点击安装,选择安装路径,我C盘大,安装在提前创建好的文件夹C:\Python39中,你可自行选择
阅读全文
摘要:1.while循环 -- while关键字 while 空格 条件 冒号 缩进 循环体 while 5>4: print("Hello World!") 数字中非0的都是True # 正序25~57 # count = 25 # while count <= 57: # print(count) #
阅读全文
摘要:1.python的历史 2004 Django框架诞生了 python2: 源码不统一,有重复的功能代码 python3: 源码统一,没有重复的功能 2.python是一个什么编程语言 编译型:只翻译一次(代表C) 优点:执行速度快 缺点:开发速度慢 解释型:逐行
阅读全文
摘要:socketserver模块 socketserver模块实现一个服务端与多个客户端通信。是在socket的基础上进行了一层封装,底层还是调用的socket。 socketserver干了两件事: 1、一个是循环建立链接的部分,每个客户链接都可以连接成功 2、一个通讯循环的部分,就是每个客户端链接成
阅读全文
摘要:1. 线程队列 1.1 先进先出(FIFO) import queue q = queue.Queue(3) q.put('a') q.put('b') q.put('c') print(q.qsize()) # 队列大小 print(q.get()) print(q.get()) print(q.
阅读全文
摘要:1. 阻塞与非阻塞 执行的角度: 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。 非阻塞:程序没有遇到IO阻塞,或者程序遇到IO,通过某种方式,让CPU强行运行程序。 2. 同步与异步 发布的角度: 同步调用:在发出一
阅读全文
摘要:1. 死锁与递归锁 死锁:两个或者两个以上的进程或者线程在执行过程中,因争夺资源而造成的一种等待现象,称为死锁现象。 递归锁可以解决死锁现象。 递归锁有一个计数的功能,原数字为0,锁一次计数+1,释放一次,计数-1;只要数字不为0,其他线程就不能枪锁。 from threading import R
阅读全文
摘要:多线程 1. 线程 开启一个进程,操作系统会开辟一个进程空间,将进程的数据资源全部复制一份,然后cpu使线程执行代码。 进程负责开辟空间、加载数据资源,线程负责执行。 2. 线程vs进程 1. 开启进程的开销大; 开启进程的速度满,线程比进程快10—100倍; 3. 同一进程的线程之间可共享数据
阅读全文
摘要:1. 互斥锁 当多个进程抢占同一数据时,将数据加锁,使进程按串行的方式去获取数据,先到先得,保证了公平、数据的安全。 lock.acquire() # 加锁 lock.release() # 释放 死锁:连续lock.acquice() 多次,会阻塞进程。 # 模拟三个用户使用同一个
阅读全文
摘要:多进程 1. 进程创建的两种方式 multiprocessing # 第一种方式 from multiprocessing import Process import time def task(name): print(f'{name} is running') time.sleep(2) pri
阅读全文
摘要:1. 操作系统 管理、控制、协调计算机硬件与软件资源的计算机程序。 1.1 作用 将一些对硬件操作的复杂、丑陋的接口,变成简单、清晰的接口。 2. 将多个进程对硬件资源(cpu)的竞态请求变得有序化、合理化。 1.2 操作系统的发展 linux或windows的源代码有五百万行数量级。 计算
阅读全文
摘要:1. recv 工作原理 1.能够接收来自socket缓冲区的字节数据; 2.当缓冲区没有数据可以读取时,recv会一直处于阻塞状态,知道缓冲区至少有一个字节数据可取,或者客户端关闭; 3.关闭远程端并读取所有数据后,再recv会返回字符串。 2.升级版解决粘包问题 应用层自定义协议FTP(文件传输
阅读全文
摘要:1. 单对单循环通信 send() 和recv()不是一一对应的。 # 服务端 server.py import socket phone = socket.socket() phone.bind = (('127.0.0.1', 8888)) # 绑定本地回环地址/端口号 phone.list
阅读全文
摘要:Socket - 套接字 应用层与TCP/IP协议族通信层(或传输层)之间的抽象层,是一组接口()接收数据;当接口接收数据之后,交由操作系统; 如果数据与操作系统直接交互,会非常麻烦,而socket会将数据进行高度封装/简化在传给操作系统。 socket在python中是一个模块。 # 导入套接字
阅读全文
摘要:网络协议 1. C/S、B/S 架构 C:client端 B:browse浏览器 S:server 端 1.1 C/S 架构: 基于客户端与服务端之间的通信。 如QQ、抖音等。 优点:满足个性化设置,响应速度快。 缺点:开发成本、维护成本高,占用空间,用户固定。 1.2 B/S 架构:
阅读全文
摘要:异常处理 1. 错误分类 # 1.语法错误: SyntaxError:invalid syntax if 2>3 pass # 2.逻辑错误: 用异常处理 2. 异常 代码出现错误时,代码中断。 # python中常用异常种类: ''' AttributeError 试图访问一个对象没有的树形,比如
阅读全文
摘要:1. 类的反射 程序对自己内部代码的一种自省方式。 定义:通过字符串取操作对象的方式。 可应用于实例对象、类、本模块、其他模块。 带有点 . 的方式都可用反射方法。 四种方法: 1. hasattr(object, name) # 判断、检测 2. getattr(object, name) # 获
阅读全文
摘要:1. 类的私有成员 -- __ 当你遇到重要的数据,功能,(只允许本类使用的一些方法,数据)将其设置成私有成员. 1.1 类的私有静态属性 __name = "meet" # 加 __ #只能在类的内部进行访问、调用,在类的外部以及派生类不能调用。 1.2 类的私有方法 class A: def _
阅读全文
摘要:1. 封装、多态 封装:将代码、数据放入一个容器空间中,并且可以使用. 多态:一个事物可以呈现多种形态。 python默认支持多态,一个变量可以指向多种数据类型。 2. 鸭子类型--Duck typing python崇尚鸭子类型(编码思路)。 "鸭子类型"像多态一样工作,但是没有继承。 看起来像“
阅读全文
摘要:继承--inheritance 面向对象的的三大特征:继承、封装、多态。 1. 面向对象继承: 如果B类继承A类,B类就称为子类、派生类,A类就称为父类、超类、基类。 继承的优点: 1. 减少重复代码; 2. 增加了类的耦合性; 3. 使代码清晰、流畅。 2. 单继承 2.1 类名执行父类的属性
阅读全文

浙公网安备 33010602011771号