Python 之 Websocket 基础操作
引用站外地址 Websocket 基础学习笔记 一. websocket 介绍1.1 简介Websocket : 可以实现 客户端(client) 与 服务端(server) 之间的双向通信, 弥补了 http 无法保持长连接的不足.Websocket 协议本身有 心跳机制、连接检测机制,服务端无须关心客户端状态,一旦有异常,会自动断开连接 使用场景: html 页面实时更新、 网页游戏、聊天、证券交易等 实时通信类场景, 如位置服务、物联网、多方协作软件、在线教育等 1.2 原理 基于 TCP, 一次握手就能建立连接, 支持双向通信, 可保持长连接. 响应码为 101, 表示切换为 websocket 协议 WebSocket 握手请求消息实例: 1234567GET /chat HTTP/1.1Host: normal-website.comSec-WebSocket-Version: 13Sec-WebS ...
Python 操作 Excel 文件库 - openpyxl
引用站外地址 Python 操作 Excel 文件库 - openpyxl 官方教程 一. 安装1pip install openpyxl 二. 基本操作2.1 创建工作簿创建工作簿时, 会自动产生一个 sheet, 可以通过 active 获取 1234567import openpyxl# 创建工作簿wx = openpyxl.Workbook()# 获取默认 工作表sheet = wx.active 2.2 创建工作表123sh1 = wb.create_sheet("工作表 1") # 在最后插入工作表sh2 = wb.create_sheet("工作表 2", 0) # 在首位插入工作表sh3 = wb.create_sheet("工作表 3", -1) # 在倒数第二个位置插入工作表 2.2.1 修改工作表名123sh3 = wb.create ...
十九、httpx 库
引用站外地址 Httpx 官方文档 支持同步和异步 API,并支持 HTTP/1.1 和 HTTP/2 一. httpx 基础HTTPX 是 Python 3 的全功能 HTTP 客户端,它提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2。 1.1 安装1pip install httpx 1.2 快速开始1.2.1 get请求1234567import httpxparams = { "wd": "python" # 输入百度搜索的内容}resp = httpx.get("https://www.baidu.com/s", params=params) # 和原来requests的使用方法类似print(resp.text) # 获取数据信息 1.2.2 post请求表单12345import httpxda ...
十八、异步编程 asyncio
一. 概念识别阻塞: A 调用 B, A 会被挂起, 一直等待 B 的结果, 什么都不干. 非阻塞: A 调用 B, A 自己不用被挂起来等待 B 的结果, A 可以去干其他事情. 同步: A 调用 B, 此时只有等 B 有了结果才返回. 同步意味着有序 异步: A 调用 B, B 立即返回, 无需等待, 等 B 处理完之后再告诉 A 结果. 异步意味着无序 并发: 为了让独立的子任务能够尽快完成. 并行: 为了利用多核加速多任务的完成. 事件循环: 并非真正的循环, 而是线程不断从事件列表中取事件的动作. 回调: 同步回调: 一种 阻塞式调用, 需要等待调用事件返回. 回调: 一种 双向调用模式, 被调用方调用时也会调用对方. 异步回调: 一种类似消息或事件的机制, 即收到某种信息时, 会主动通知调用方. 二. 协程2.1 协程协程(coroutine): 又称微线程, 一种用户态的轻量级线程. 协程(coroutine): 又称微线程, 一种用户态的轻量级线程. async: 用来定义协程的关键字. await: 等待到对象的返回结果,才会继续执行后续代码. 12345 ...
十七、零散的知识
1. print 打印技巧1.1 数字时钟样式使用 \r + end="" 可以实现数字时钟. 123print(f"{self._hour:-02d}:{self._minute:-02d}:{self._second:-02d}", end="")time.sleep(1)print("\r", end="") 1.2 加载进度条样式12print("🟥", end=' ')time.sleep(0.5)
一、环境搭建
1. 下载 jdkJava se 官网 2. 安装 验证安装1java -version 123java或javac 3. 第一个程序12345public class demo01{ public static void main(String[] args) { System.out.println("你好,java"); }} 在文件目录下运行代码,进行编译,得到 .class 文件 12javac demo01.java java demo01
十、集合、泛型
一、集合:::tip 单列集合:其中的元素都是单个的; Collection 接口有两个重要的子接口 List、Set,他们实现子类都是单列集合 双列集合:其中的元素是以键值对的形式出现的; Map 接口实现的子类 是双列集合::: 1. Collection 接口 :::tipCollection 接口实现类的特点: Collection 实现子类可以存放多个元素,每个元素可以是 object; 有些实现类可以存放重复的元素,有些不可以; 有些实现类是有序的(List),有些是无序的(Set); Collection 接口没收直接实现子类,它是通过子接口 List 和 set 来实现的;::: Collection 接口常用方法 add 添加单个元素 remove 删除指定元素 contains 查找元素是否存在 size 获取元素个数 isEmpty 判断是否为空 clear 清空 addAll 添加多个元素 contains 查找多个元素是否都存在 removeAll 删除多个元素 1234567891011121 ...
十一、线程
一、线程:::tip 线程是由进程创建的,线程就是进程的实体 线程可以分为单线程 和 多线程 单线程: 同一时刻,只允许执行一个线程; 多线程: 同一时刻,可以执行多个线程; 并发: 同一时刻,多个任务交替执行,单核 CPU 实现多任务并发; 并行: 同一时刻,多个任务同时执行,多核 CPU 可以实现并行; 并行 与 并发 也可能同时存在::: 1. 线程使用:::tip创建线程的两种方法: 继承 Thread 类,重写 run 方法; 实现 Runnable 接口,重写 run 方法;::: :::tip继承 Thread 类,创建线程: 主线程结束后,子线程任然在执行时,进程不会结束; 调用 run() 方法并不会启动线程,而且会造成主线程阻塞 调用 start() 方法可以启动线程,不会造成线程阻塞,主线程和子线程会同时执行::: 1234567891011121314151617181920212223// 继承 Thread 类 - 案例public class Thread01{ public static void main(Stri ...
十二、绘图
一、绘图坐标体系:::note 坐标原点位于左上角,以像素为单位; 坐标原点(0,0): 第一个是 X 坐标,表示当前位置 水平 方向距离原点 X 个像素; 第二个是 Y 坐标,表示当前位置 垂直 方向距离原点 Y 个像素;::: Graphics 常用方法: 画直线 drawLine(int x1, int y1,intx2,inty2) 画矩形边框 drawRect(int x,int y, int width, int height) 画椭圆边框 drawOval (int x, int y, int width, int height) 填充矩形 fillRect (int x, int y, int width, int height) 填充椭圆 fillOval (int x, int y, int width, int height) 画图片 drawImage (Image img, int x, int y, …) 画字符串 drowString (String str, int x, int y) 设置画笔字体 se ...
十三、文件、IO 流、Properties
一、文件:::tip文件流: 输入流: 是指 数据从 文件 到 内存 的路径; 输出流: 是指 数据从 内存 到 文件 的路径;::: 1. 创建文件 命令 说明 new File(String pathname) 根据路径构建 一个 File 对象 new File(File parent, String child) 根据父目录文件 + 子路径构建 new File(String parent, String child) 根据父目录 + 子路径构建 createNewFile 创建新文件 1234567891011121314151617181920212223242526272829303132333435363738// 文件创建 - 案例public class File01 { public static void main(String[] args) { } @Test public void createFile01() throws IOException { ...