🙄引用站外地址,不保证站点的可用性和安全性
Websocket
基础学习笔记
一. websocket 介绍1.1 简介Websocket : 可以实现 客户端(client) 与 服务端(server) 之间的双向通信, 弥补了 http 无法保持长连接的不足.Websocket 协议本身有 心跳机制、连接检测机制,服务端无须关心客户端状态,一旦有异常,会自动断开连接
使用场景:
html 页面实时更新、 网页游戏、聊天、证券交易等
实时通信类场景, 如位置服务、物联网、多方协作软件、在线教育等
1.2 原理
基于 TCP, 一次握手就能建立连接, 支持双向通信, 可保持长连接.
响应码为 101, 表示切换为 websocket 协议
WebSocket 握手请求消息实例:
1234567GET /chat HTTP/1.1Host: normal- ...
🙄引用站外地址,不保证站点的可用性和安全性
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) ...
🙄引用站外地址,不保证站点的可用性和安全性
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 ...
一. 概念识别阻塞: A 调用 B, A 会被挂起, 一直等待 B 的结果, 什么都不干.
非阻塞: A 调用 B, A 自己不用被挂起来等待 B 的结果, A 可以去干其他事情.
同步: A 调用 B, 此时只有等 B 有了结果才返回. 同步意味着有序
异步: A 调用 B, B 立即返回, 无需等待, 等 B 处理完之后再告诉 A 结果. 异步意味着无序
并发: 为了让独立的子任务能够尽快完成.
并行: 为了利用多核加速多任务的完成.
事件循环: 并非真正的循环, 而是线程不断从事件列表中取事件的动作.
回调:
同步回调: 一种 阻塞式调用, 需要等待调用事件返回.
回调: 一种 双向调用模式, 被调用方调用时也会调用对方.
异步回调: 一种类似消息或事件的机制, 即收到某种信息时, 会主动通知调用方.
二. 协程2.1 协程协程(coroutine): 又称微线程, 一种用户态的轻量级线程.
协程(coroutine): 又称微线程, 一种用户态的轻量级线程.
async: 用来定义协程的关键字.
await: 等待到对象的返回结果,才会继续执行后续代码.
1234567 ...
获取目录:12345678910111213141516171819202122232425262728293031323334353637383940414243import requestsimport reimport openpyxlurl = 'https://www.ddxs.cc/ddxs/661/'book_html = requests.get(url)book_html.encoding = 'gbk' # 解决乱码问题book_name = re.findall('<h1>(.*?)</h1>', book_html.text)mulu = re.findall('.html">(.*?)</a>', book_html.text)[1:]mulu_num = re.findall('<a href="/ddxs/661/(.*?).html">', book_html.t ...
一、异常对象Python 标准库中 有很多异常类,都是继承自 标准库里面的 Exception 类
1234567a = 100/0print(a)Traceback (most recent call last): File "xxxxxxxxxx.py", line 1, in <module> a = 100/0ZeroDivisionError: division by zero
二、 捕获异常try … except …try ... except ...方法可以用来 捕获 和 处理异常
1234567while True: try: miles = input('请输入英里数:') km = int(miles) * 1.609344 print(f'等于{km}公里') except ValueError: print('你输入了非数字字符')
try :缩进的 3 行代码可以看做 保 ...
一、 类Python 中 一切对象都有各自的类。
Python 中,除了内置的类之外,我们也可以自定义类。
使用 class 关键字 定义一个类。
1234567class BenzCar: brand = '奔驰' # 品牌属性 country = '德国' # 产地属性 @staticmethod def pressHorn(): print('嘟嘟~~~~~~')
类 和 变量 的 命名规则一样,类名的 首字母大写 。
brand 和 country 都是这个类的 属性 ,也叫 类属性
类属性 的调用:
1print(BenzCar.brand)
pressHorn 是类的方法 ,也叫 类方法
@staticmethod 则表示 该方法是这个类的 静态方法
静态方法 的调用:
1BenzCar.pressHorn()
二、 实例1. 类和实例的关系某种对象的类型 称为 类 ,他描述了这个类型的实例的 公共特征。
具体 的对象 称为 实例 。
实例的 ...
模块与包1. 模块(Module)1.1 概念在 Python 中,一个代码文件(也就是一个 .py 文件)就叫做 模块 。a.py 文件,称之为 模块 a
1.2 模块间的调用1.2.1import关键字123# 通过 import 关键字 导入模块 saveimport save
1.2.2 from...import...关键字通过 from import 关键字导入其他模块里面的标识符(包括变量名和函数名)
123456789101112131415161718# 从 save 模块 导入标识符 savetofile ,# 导入后 savetofile 就成为模块aa中的一个变量,对应一个函数对象from save import savetofilefee = input('请输入午餐费用:')members = input('请输入聚餐人姓名,以英文逗号,分隔:')# 将人员放入一个列表memberlist = members.split(',')# 得到人数headcount = len(memberlist)# ...















