1.python的第一个程序
2.代码注释
3.交互模式
4.变量与常量
电影文件是有文件类型:MP4,avi 图片文件:jpeg,png,jpg
5.数据类型
python类型决定了当前变量在内存中的存储体积
字符串,字符,数字类型,整型,浮点类型,字典类型,列表类型,元祖类型,集合类型,布尔类型
6.标识符与关键字
7.print高价用法
8.格式化输出
9.输出
10.输入
11.转义字符
\t为制表符
12.字符串计算
13.运算符
// 地板除
14.布尔类型的使用
15.比较运算符
16.逻辑运算符
17.逻辑运算和比较运算的配合使用
18.if判断语句
19.循环语句
九九乘法表:
20.for循环
通过元素下标进行取值
21.break与continue
22.容器类型
步长:
23.字符串方法
24.列表定义
25.列表方法
res为新列表
26.列表排序
27.元组的创建
如果元组中只有一个元素,后面需要加上逗号
28.元组中元素的修改问题
列表中存储的内存地址不变
元组是为了保护数据
返回值为元组
打印的是对象
允许被迭代
29.集合的创建
集合是无序的
可以去重
将列表转为集合
30.集合方法
31.集合运算
只有管道运算符没有加法
32.字典
33.字典操作
顺序录入
34.python对象的地址引用
字典拆包
*拆列表元组集合
**拆字典(字典-元组-文本)
35.函数
函数可以多次输出
函数返回值
36.return关键字特征
37.函数引用地址
38.缺省参数
mysql 3306
redis 6379
mongodb 17027
39.命名参数
39.不定长参数
40.函数返回值拆包
41.匿名函数
42.递归函数
43.面向对象
zip压缩不安全,数据丢失就错误输出
44.类与对象
44.实例属性与实例方法
1.类的属性
cat和cat1的属性不能嵌套,函数和函数的属性之间也不能嵌套
2.类的实例方法
45.类中的self参数
46.私有属性
47.私有方法
48.对象关联
动态创建属性
49.关联多个对象
50.对象关联模版
51.继承
方法可以继承,值不能被继承(值继承为方法继承,如下:)
继承代码练习
私有属性有值可以继承他的值,name传参不能被继承
52.单继承
53.多继承
子类方法中的参数需要一致,否则报错
54.使用多继承完成系统开发
55.重写
56.super方法
super的使用场景
57.多态
58.静态方法
59.类属性
60.类方法
61.类对象
62.查看一个对象的所有属性和方法
返回一个字典
63.super与多继承
如果子类继承父类需要重写和,补参数
64.在多继承中调用父类的初始化方法-普通方法
65.在多继承中调用父类的初始化方法-super方法
利用super调用父类只进行一次
调用super父类接受三个参数
son1的super指向son2
age被son1取走(相当于拆包过程)
son2的super取走gender,son2的super指向父类
父类走完回到son2在回到son1
回到
类的继承数据
脑子放空在返回看
66.迭代器
1.单例模式
单例模式解决的问题:
重载:重新调用 重写:将原来的父用方法重写
2.什么是迭代以及如何实现迭代
3.什么是迭代
4.可迭代对象
在 Python 中,isinstance()
函数用于检查一个对象是否是某个类或元组中类的实例。Iterable
是一个接口,表示对象可以被迭代(例如,列表、元组、字符串等)。
5.迭代器
6.for循环的本质
7.自定义迭代对象以及实现迭代器方法
8.实现迭代方法以及迭代器方法-分离模式
9.实现迭代方法以及迭代器方法-整合模式
67.生成器
1.生成器对象的创建
2.生成器的工作流程
3.生成器表达式
4.生成器中的send与close方法
5.使用生成器完成爬虫
68.闭包
1.需求解决
2.使用面向对象的方式完成需求
3.使用闭包的方式完成需求
4.闭包的创建
5.创建有带有参数的内部参数闭包
7.多个闭包对象
8.打印闭包返回的对象地址与内部函数地址
69.装饰器
1.bug定位
2.对debug功能进行优化
3.如何实现装饰器
4.装饰器语法糖
5.带参数的装饰器
6.使用不定长参数创建装饰器
直接传元组
*拆包
7.实现装饰器本身带参数的案例
8.__call__方法
9.类装饰器的实践
10.带参数的类装饰器
11.property属性的使用
12.获取商品价格
13.使用property修改数据
14.实现翻页功能
15.修改商品价格
70.异常处理与文件操作
1.什么是异常
2.如何使用异常类
3.计算异常
4.手动抛出异常
5.断言
6.else在异常中使用
7.finally在异常中使用
8.自定义异常类
9.使用open函数完成文件读写
10.文件写入
11.读写行
12.上下文管理器
13.自定义读写类
71.线程-1
!!!!!!!
1.使用线程完成并发任务
2.并发任务
3.同步爬虫程序
4.并发爬虫任务
5.并行爬虫任务
6.主线程与子线程交替执行
7.线程方法
72.-线程-2
2.使用自定义线程类完成爬虫程序
3.线程安全
4.使用线程锁解决资源竞争问题
5.使用上下文管理器管理锁对象
7.死锁问题
8.线程池
73.进程
1.进程的使用
解决:加个函数入口
2.进程的启动方式
3.获取进程编号
4.给子进程绑定的任务传递参数
5.进程之间不共享资源
6.队列的使用
7.在进程中使用队列
8.进程池-1
9.进程池-2
上下文管理器
map方法
输出future的返回值
将所有future返回值放到列表中去
74.协程-1
同步并发
异步非堵塞
1.生成器的回顾
2.生成器完成多任务切换
3.异步IO程序
创建一个异步 I/O 程序来进行异步 HTTP 请求。
4.事件循环的创建方式
优先级最高
5.协程函数与协程对象
6.协程中的预处理
7.await关键字的使用
框架
8.协程嵌套
9.将多任务改写成并发模式
10.task创建问题
75.协程-2
1.关于协程并发的案例
2.创建task对象完成并发任务
3.loop.create_task与asyncio.create_task的区别
4.ensure_future与create_task的区别
5.线程和进程与协程的交叉使用
6.使用同步爬虫库完成异步爬虫抓取
7.异步迭代器
8.绑定回调
9.asyncio获取返回值的问题
10.堵塞与await
11.异步上下文管理器
12.高性能事件循环
13.关于协程池的问题
76.MySQL数据库-1
1.数据库操作
--查询所有数据库 show databases; --使用数据库 use py_spider; --查询指定数据库中的所有数据表 show tables; --查询当前位于那个数据库之下 select database(); --查询mysql软件版本 select version(); --创建数据库 python基础数据库 --create database 数据库名称 charset=字符集; create database python_basic char set=utf8; --删除数据库 - 慎用 drop database python_basic;
2.数据表操作
-- 进入指定数据库 use py_spider;-- 查询数据库之下所有的表 show tables;-- 查询表结构 desc cls_info;-- 重新创建数据库 create database python_base charset=utf8; use python_base;-- 创建表 -创建班级表与学生表 -- 最后一个字段不能加逗号,并且声明字符串必须声明长度 create table cls_info (id int primary key auto_increment,cls_name varchar(10) ); desc cls_info;create table student_info(id int primary key auto_increment,name varchar(20)not null,age tinyint unsigned default 0,-- tinyint范围:-128到127 unsigned:无符号height decimal(5,2),-- 5代表数字个数,2代表小数位个数gender enum('男','女','人妖','未知'), -- 枚举类型 -- default '女'全部赋值为女cls_id int unsigned default 0 );-- 查看所有的数据表 show tables ;-- 查看表结构 desc student_info;-- 添加字段 alter table student_info add birthday datetime; desc student_info;-- 修改字段 -- alter table 表名 change 原字段名 修改后字段名 字段类型 [约束]; alter table student_info change highrt height decimal(5,2) ; desc student_info;-- 修改字段 - 不重命名 -- alter table student_info modify birth datetime; alter table student_info modify highrt height; desc student_info;-- 字段删除 -- alter table 表名 drop birth; alter table student_info drop birth; desc student_info; -- 查询表创建过程 show create table student_info;-- 表查询 -- 查询所有字段值 select * from ali_work;-- 查询指定字段值 select id, work_name, work_desc from ali_work;-- 数据添加 use python_base; desc student_info;-- insert into 表名 values(数据集) 全字段插入 insert into student_info values(0,'安娜',18,'176.72','女',1); select * from student_info;-- 部分插入 insert into student_info (id, name) values (0,'双双') select * from student_info;-- 批量插入 insert into student_info values (0,'安安',19,176.32,'女',2),(0,'22',66,162.22,'女',5); select * from student_info;-- 批量部分字段插入 insert into student_info (id, name) values (0,'88'),(0,'99'),(0,'33');-- 数据修改 -- update 表名 update student_info set age=18,highrt=199.72,gender='女',cls_id=1 where id=2;-- 数据删除 delete from student_info where id =8;-- 逻辑删除 -- 如商城订单显示 alter table student_info add is_delete bit default 0; desc student_info; select * from student_info; update student_info set student_info.is_delete=1 where id=6; select * from student_info where student_info.is_delete=0;
77.MySQL数据库-2
1.自关联查询
2.视图
3.事务
4.数据库连接
5.数据表创建
6.数据插入
7.数据查询
8.数据更新
9.批量插入
78.redis数据库
1.redis基础命令
redis.net.cn/order/
2.字符串操作
3.键命令
4.hash类型
5.list类型
6.set类型
无序
7.zset类型
8.pyhon操作redis
9.添加数据
保存字符串,元组,文本等等
默认关闭
10.数据获取
utf-8 utf8都行
11.修改数据
12.删除数据
13.获取键
79.mongodb数据库-1
1.mongodb的基础命令
加不加分号都行
2.数据操作
3.数据查询.js
只能终端
80.mongodb数据库-2