随笔分类 -  python

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