TechBlog
首页分类标签搜索关于

© 2025 TechBlog. All rights reserved.

黑马Python语言进阶课程笔记个人记录仅供参考

11/22/2025
未分类#笔记#数据结构#Python

黑马Python语言进阶课程笔记(个人记录、仅供参考)


一、前言

B站视频标题为:黑马程序员大模型Python语言进阶全套视频课程,从面向对象到数据结构与算法知识精讲+项目实战一套搞定。本博客为个人学习笔记,方便自己复习,仅供参考

二、面向对象基础

1、今日内容大纲介绍

2、面向过程和面向对象初识

3、封装简介

4、继承和多态简介

5、定义类格式介绍

6、创建对象及访问类中行为

7、self关键字_入门

8、类内和类外如何访问类中的函数(行为)

9、面向对象案例_手机类

10、类外_设置和获取对象的属性

11、类内_获取对象的属性

12、魔法方法_init_函数_无参版

13、魔法方法_init_函数_有参版

14、魔法方法_str

15、魔法方法_del

16、案例_减肥案例

17、案例_烤地瓜案例

18、定义类的三种格式介绍

19、继承入门

20、单继承入门

21、单继承案例_煎饼果子

22、多继承案例_煎饼果子

三、面向对象高级

1、子类重写父类功能

2、子类访问父类成员_方式1

3、子类访问父类成员_方式2

4、多层继承

5、封装的解释

6、多态入门

7、多态案例_构建对战平台

8、抽象类案例_空调案例

9、对象属性和类属性介绍

10、类方法与静态方法介绍

11、学生管理系统_思路分析

12、学生管理系统_学生类代码编写

13、学生管理系统_学生管理系统代码编写

14、学生管理系统_入口文件

15、学生管理系统_添加学生信息

16、学生管理系统_查看所有学生信息

17、学生管理系统_删除学生信息

18、学生管理系统_修改学生信息

19、学生管理系统_查询单个学生信息

20、拓展_dict属性

21、学生管理系统_保存学生信息

22、学生管理系统_加载学生信息

23、学生管理系统_完整实现

四、闭包和装饰器

1、闭包背景介绍

2、闭包入门

3、闭包图解

4、nonlocal关键字详解

5、闭包总结

6、装饰器入门_传统写法

7、装饰器入门_语法糖写法

8、装饰器案例_无参无返回值的原函数

9、装饰器案例_有参无返回值的原函数

10、装饰器案例_无参有返回值的原函数

11、装饰器案例_有参有返回的原函数

12、装饰器案例_可变参数

13、装饰器案例_多个装饰器装饰1个函数

14、装饰器案例_带参数的装饰器

15、装饰器案例_带参数的装饰器_优化

16、浅拷贝_操作可变类型

17、浅拷贝_操作不可变类型

18、深拷贝_操作可变和不可变类型

五、网编与多线程

1、内容大纲介绍

2、网络编程简介

3、TCP协议介绍

4、创建Socket对象

5、网编案例_一句话_服务器端代码

6、网编案例_一句话_客户端代码

注意填写IP地址肯定是和老师视频中不一样的,在cmd命令行中通过ipconfig命令查出Ipv4的地址填写上去

7、拓展_编解码问题

8、设置端口号重用

9、网编案例_一句话_模拟多服务器端代码

10、网编案例_文件上传

11、网编案例_文件上传_模拟多任务版

12、多任务介绍_并行_并发

13、单进程代码演示

14、多进程_入门案例

15、多进程_入门案例_带参数

16、多进程_如何获取进程id

17、进程特点_数据隔离

18、进程特点_守护进程

守护进程 是用来守护 非守护进程的。一旦非守护进程退出,则它的所有守护进程都得销毁。eg:水晶就是非守护进程,守家的玩家就是守护进程,水晶爆了所有守家的玩家也就结束了

但是Java中不太一样,如果main进程退出之后它还会再挣扎着打印几次,原因是多线程的执行具有延迟性

19、线程介绍

20、线程入门_无参数案例

21、线程入门_带参数案例

六、生成器与正则表达式

1、拓展题讲解

切片的本质是浅拷贝

2、线程特点_随机性

3、线程特点_守护线程

出现划掉的线不是不能用,而是已过时,不推荐使用

4、线程特点_数据共享

5、线程特点_操作共享变量_出问题

线程1拿到global_num = 0,在函数1开始累加一次之前资源被线程2抢走了。此时线程2拿到的global_num也是0。然后线程1重新抢回资源累加一次之后把global_num = 1传回去,随后线程2抢回资源累加一次之后也是把global_num = 1传回去。这样就出现了明明两个函数都已经累加一次(即理论global_num = 2),但是最后global_num的值却是1

6、多线程_互斥锁

7、线程和进程的区别

8、迭代器介绍

9、生成器_推导式写法

10、生成器_yield关键字

11、生成器案例_批次歌词数据

12、Property属性_装饰器用法

13、Property属性_类属性用法

14、正则替换

15、正则校验_单个字符

16、正则校验_多个字符

17、正则校验_开头和结尾

18、正则校验_提取分组数据

19、正则校验_提取邮箱域名

20、正则校验_提取QQ号

21、正则校验_html标签

七、算法详解_链表

1、数据结构和算法简介

2、算法的特性

3、如何衡量算法的优劣

4、大O标记法介绍

5、时间复杂度计算方式

6、最优和最坏时间复杂度计算

7、常见时间复杂度介绍

8、常见的空间复杂度介绍

9、数据结构与算法概述回顾

10、数据结构的分类

11、顺序表存储数据方式的介绍

12、递归入门案例_求阶乘

13、顺序表扩容策略介绍

14、顺序表添加和删除元素

15、链表简介

16、自定义代码模拟链表_思路分析

17、自定义代码模拟链表_框架搭建

18、自定义代码模拟链表_判断是否为空

19、自定义代码模拟链表_计算长度

20、自定义代码模拟链表_遍历链表

21、自定义代码模拟链表_往头部添加元素

注意:1和2的顺序不能变

22、自定义代码模拟链表_往尾部添加元素

23、自定义代码模拟链表_往中间插入元素

24、自定义代码模拟链表_删除元素

25、自定义代码模拟链表_查找元素

八、算法详解_二叉树

1、排序算法稳定性介绍

2、冒泡排序_思路分析

3、冒泡排序_代码实现

4、选择排序_思路分析

5、选择排序_代码实现

下面的代码实现是外层用j,内层用i,和自己写的习惯不一样

选择排序是不稳定的

6、插入排序_思路和代码

7、二分查找_递归版

8、二分查找_非递归版

9、树结构简介

10、树的常用分类

11、完全二叉树常用公式介绍

12、自定义代码模拟二叉树_框架搭建

13、自定义代码模拟二叉树_添加节点的思路

14、自定义代码模拟二叉树_添加节点代码实现

15、自定义代码模拟二叉树_广度优先遍历

16、深度遍历_前序中序后序解释

17、自定义代码模拟二叉树_深度遍历_代码实现

18、根据先序和中序_逆推二叉树结构

九、拓展内容

1、快速排序_代码实现

2、快速排序_图解