Python人工智能基础·第二季导读

课程定位

本季课程承接第一季的语法基础,全面进入文件操作与异常处理的实战阶段。这两块内容是AI开发中不可或缺的底层能力——模型训练时需要高效读取数据集,推理完成后需要保存参数,数据流转过程中需要处理各种异常。掌握这些技能,将为后续神经网络数据加载、模型序列化存储等核心任务打下坚实基础。

学习门槛

学员需已掌握Python基本语法,包括变量、流程控制、函数定义、列表与字典等数据结构。无需任何操作系统或软件工程背景,零基础从第一节课开始跟随即可。建议在学习过程中保持耐心,遇到问题多看视频讲解,多动手调试代码。

资料包用法

课程配套视频已按章节编号整理,学习时建议在电脑上新建一个专属练习文件夹,按照视频节奏逐步运行和修改代码。遇到报错不要慌张,认真对照老师的调试过程,将每个错误的产生原因和解决方法记录在笔记本中,形成自己的错题本,这对后续复习非常有帮助。

学习顺序建议

建议严格按照课程编号顺序逐节推进,文件处理部分共十八节,内容层层递进,从基础的文本读写到二进制操作,再到OS模块和递归算法,每一节都是下一节的铺垫。异常处理部分从第一节开始独立成专题,学习完文件操作后再集中攻克异常捕获机制会更顺畅。遇到理解困难的知识点可以反复观看视频,务必自己动手敲代码,光看不练难以真正掌握。学完每一节后可尝试独立完成一个小练习,巩固所学知识。

学完产出

完成本季后,你将能够独立读写多种格式文件,熟练调用操作系统接口管理文件和目录,理解递归思想的本质并能编写简单的递归程序,掌握异常捕获与调试的基本方法。更重要的是,你会建立起对文件I/O和程序健壮性的系统性认识,这些能力将直接支撑后续所有AI开发任务的学习与实践。

本课重点

文件I/O与编码问题是高频考点,必须熟练掌握不同编码场景下的处理方式。pickle序列化是模型参数保存的核心手段,理解其原理有助于深入认识"记忆移植"概念。递归算法是编程思维的重要跃迁,建议结合目录树遍历等实际案例加深理解。异常处理直接决定代码的健壮程度,务必养成良好编程习惯。学完全部课程后,建议独立完成一个综合小项目:读取CSV数据集、处理运行异常、保存训练结果,以此全面检验学习效果。

课程目录

课程目录150 集
  • 1-1 [文件处理] file文件操作_操作系统底层关系_写入文件 (18:15).mp4
  • 1-2 [文件处理] 编码知识_中文乱码问题解决 (18:47).mp4
  • 1-3 [文件处理] 关闭流要点1_try异常管理 (11:46).mp4
  • 1-4 [文件处理] 关闭流要点2_with上下文管理_现场还原 (04:41).mp4
  • 1-5 [文件处理] 文本文件的读取 (08:04).mp4
  • 1-6 [文件处理] enumerate()函数和推导式生成列表_操作每行增加行号 (12:42).mp4
  • 1-7 [文件处理] 二进制文件的读写_图片文件拷贝 (03:57).mp4
  • 1-8 [文件处理] 文件对象常用方法和属性总结_seek()任意位置操作 (09:20).mp4
  • 1-9 [文件处理] 使用pickle实现序列化和反序列化_神经元记忆移植 (14:12).mp4
  • 1-10 [文件处理] CSV文件的读取_写入 (12:43).mp4
  • 1-11 [文件处理] os模块_调用操作系统可执行文件_控制台乱码问题 (08:19).mp4
  • 1-12 [文件处理] os模块_获得文件信息_创建文件夹_递归创建 (21:59).mp4
  • 1-13 [文件处理] os.path模块_常用方法 (18:18).mp4
  • 1-14 [文件处理] os模块_使用walk遍历 (08:59).mp4
  • 1-15 [文件处理] shutil模块_文件和目录拷贝 (07:57).mp4
  • 1-16 [文件处理] shutil和zipfile模块_压缩和解压缩 (05:50).mp4
  • 1-17 [文件处理] 递归算法原理_阶乘计算 (13:59).mp4
  • 1-18 [文件处理] 递归算法原理_目录树结构展示 (09:01).mp4
  • 2-1 [异常处理] 异常的本质_调试核心理念 (26:19).mp4
  • 2-2 [异常处理] try_except基本结构 (16:14).mp4
  • 2-3 [异常处理] try_多个except结构 (08:26).mp4
  • 2-4 [异常处理] else结构 (03:48).mp4
  • 2-5 [异常处理] finally结构 (08:57).mp4
  • 2-6 [异常处理] 常见异常汇总和说明 (08:32).mp4
  • 2-7 [异常处理] with上下文管理 (04:33).mp4
  • 2-8 [异常处理] trackback模块的使用_异常写入日志文件 (06:06).mp4
  • 2-9 [异常处理] 自定义异常类_raise抛出异常 (10:10).mp4
  • 2-10 [异常处理] pycharm的调试模式 (22:10).mp4
  • 3-1 [模块] 模块化编程理念_什么是模块_哲学思想 (11:53).mp4
  • 3-2 [模块] 模块化编程的流程_设计和实现分离 (19:20).mp4
  • 3-3 [模块] 模块导入_import和from_import语句详解和区别 (11:40).mp4
  • 3-4 [模块] import加载底层原理_importlib模块 (11:40).mp4
  • 3-5 [模块] 包的概念和创建包和导入包 (12:04).mp4
  • 3-6 [模块] 包的本质和init文件_批量导入_包内引用 (08:23).mp4
  • 3-7 [模块] sys.path和模块搜索路径详解 (12:01).mp4
  • 3-8 [模块] 模块的本地发布_模块的安装 (09:06).mp4
  • 3-9 [模块] PyPI官网_远程上传和管理模块_PIP方式安装模块 (10:18).mp4
  • 4-1 [GUI编程] GUI编程和tinkter介绍_第一个GUI程序 (19:12).mp4
  • 4-2 [GUI编程] PEP8编码规范_窗口大小和位置 (07:01).mp4
  • 4-3 [GUI编程] GUI编程整体描述_常用组件汇总 (07:33).mp4
  • 4-4 [GUI编程] GUI程序的经典面向对象写法 (22:35).mp4
  • 4-5 [GUI编程] Label组件_tkinter中图像正确显示全局变量写法 (16:43).mp4
  • 4-6 [GUI编程] options选项详解_底层源码分析和阅读_可变参数复习 (15:25).mp4
  • 4-7 [GUI编程] Button_anchor位置控制 (10:27).mp4
  • 4-8 [GUI编程] Entry_StringVar_登录界面设计和功能实现 (18:45).mp4
  • 4-9 [GUI编程] Text多行文本框详解_复杂tag标记 (12:34).mp4
  • 4-10 [GUI编程] Radiobutton_Checkbutton详解 (08:11).mp4
  • 4-11 [GUI编程] Canvas画布组件 (08:03).mp4
  • 4-12 [GUI编程] Grid布局管理器详解 (07:38).mp4
  • 4-13 [GUI编程] 计算器软件界面的设计 (17:22).mp4
  • 4-14 [GUI编程] Pack布局管理器_钢琴软件界面设计 (06:32).mp4
  • 4-15 [GUI编程] Place管理器_很位置和相对位置 (06:23).mp4
  • 4-16 [GUI编程] 扑克游戏界面设计_增加事件操作 (14:48).mp4
  • 4-17 [GUI编程] 事件机制和消息循环原理_鼠标事件_键盘事件_event对象 (18:26).mp4
  • 4-18 [GUI编程] lambda表达式_事件传参应用 (07:35).mp4
  • 4-19 [GUI编程] 三种事件绑定方式总结 (04:18).mp4
  • 4-20 [GUI编程] optionmenu选项菜单_scale滑块 (07:28).mp4
  • 4-21 [GUI编程] 颜色框_文件选择框_读取文件内容 (08:55).mp4
  • 4-22 [GUI编程] 简单对话框_通用消息框_ttk子模块问题 (05:53).mp4
  • 4-23 [GUI编程] 主菜单_上下文菜单 (07:38).mp4
  • 4-24 [GUI编程] 【记事本项目01】_打开和保存修改文件的实现 (11:21).mp4
  • 4-25 [GUI编程] 【记事本项目02】_新建文件_背景色改变_快捷键功能 (12:57).mp4
  • 4-26 [GUI编程] 【记事本项目03】python项目打包成exe可执行文件 (03:58).mp4
  • 4-27 [GUI编程] 【画图项目01】_界面实现 (13:29).mp4
  • 4-28 [GUI编程] 【画图项目02】_绘制直线_拖动删除上一个图形 (12:49).mp4
  • 4-29 [GUI编程] 【画图项目03】_箭头直线_矩形绘制 (05:30).mp4
  • 4-30 [GUI编程] 【画图项目04】_画笔和橡皮擦实现 (07:42).mp4
  • 4-31 [GUI编程] 【画图项目05】_清屏_颜色框_快捷键处理 (08:28).mp4
  • 5-1 [坦克大战] pygame模块的安装 (07:19).mp4
  • 5-2 [坦克大战] 面向对象分析项目需求 (06:37).mp4
  • 5-3 [坦克大战] 坦克大战项目框架搭建 (06:25).mp4
  • 5-4 [坦克大战] 加载主窗口 (11:59).mp4
  • 5-5 [坦克大战] 坦克大战之事件处理 (10:18).mp4
  • 5-6 [坦克大战] 左上角文字的绘制 (16:52).mp4
  • 5-7 [坦克大战] 加载我方坦克 (15:11).mp4
  • 5-8 [坦克大战] 我方坦克切换方向_移动 (06:54).mp4
  • 5-9 [坦克大战] 我方坦克移动优化 (08:24).mp4
  • 5-10 [坦克大战] 我方坦克优化2 (13:05).mp4
  • 5-11 [坦克大战] 加载敌方坦克 (15:25).mp4
  • 5-12 [坦克大战] 敌方坦克随机移动 (11:09).mp4
  • 5-13 [坦克大战] 完善类 (11:54).mp4
  • 5-14 [坦克大战] 我方坦克发射子d (07:18).mp4
  • 5-15 [坦克大战] 子d移动 (10:29).mp4
  • 5-16 [坦克大战] 子d消亡及数量控制 (08:45).mp4
  • 5-17 [坦克大战] 敌方坦克发射子d (12:01).mp4
  • 5-18 [坦克大战] 我方子d与敌方坦克的碰撞 (12:41).mp4
  • 5-19 [坦克大战] 实现爆炸效果 (13:07).mp4
  • 5-20 [坦克大战] 我方坦克的消亡 (10:36).mp4
  • 5-21 [坦克大战] 我方坦克重生 (07:13).mp4
  • 5-22 [坦克大战] 加载墙壁 (12:34).mp4
  • 5-23 [坦克大战] 子d不能穿墙 (08:03).mp4
  • 5-24 [坦克大战] 坦克不能穿墙 (10:08).mp4
  • 5-25 [坦克大战] 敌我双方坦克发生碰撞 (10:07).mp4
  • 5-26 [坦克大战] 音效处理 (09:37).mp4
  • 6-1 [数据库编程] 操作SQLite3创建表 (10:38).mp4
  • 6-2 [数据库编程] 操作sqlite3数据库插入数据 (11:16).mp4
  • 6-3 [数据库编程] 操作SQLite3数据库查询数据 (07:59).mp4
  • 6-4 [数据库编程] 操作SQLite3数据库修改_删除数据 (08:34).mp4
  • 6-5 [数据库编程] MySQL数据库的下载 (04:19).mp4
  • 6-6 [数据库编程] MySQL安装 (05:49).mp4
  • 6-7 [数据库编程] PyMySQL模块的安装 (05:12).mp4
  • 6-8 [数据库编程] 操作MySQL数据库创建表 (08:30).mp4
  • 6-9 [数据库编程] 操作MySQL数据库插入数据 (10:51).mp4
  • 6-10 [数据库编程] 操作MySQL数据库查询数据 (09:25).mp4
  • 6-11 [数据库编程] 操作MySQL数据库修改_删除数据 (07:55).mp4
  • 7-1 [numpy] numpy是什么及numpy的安装 (08:29).mp4
  • 7-2 [numpy] array进行创建数组 (08:33).mp4
  • 7-3 [numpy] arange创建数组 (07:28).mp4
  • 7-4 [numpy] 随机创建数组1 (11:39).mp4
  • 7-5 [numpy] 随机数创建数组2 (10:24).mp4
  • 7-6 [numpy] ndarray对象的属性 (13:55).mp4
  • 7-7 [numpy] 其他方式创建数组 (15:31).mp4
  • 7-8 [numpy] 一维数组的切片索引 (08:29).mp4
  • 7-9 [numpy] 二维数组的切片和索引 (18:53).mp4
  • 7-10 [numpy] 数组的复制 (08:22).mp4
  • 7-11 [numpy] 修改数组的维度 (12:09).mp4
  • 7-12 [numpy] 数组的拼接 (15:26).mp4
  • 7-13 [numpy] 数组的分隔 (18:49).mp4
  • 7-14 [numpy] 数组的转置 (10:48).mp4
  • 7-15 [numpy] 函数1 (19:14).mp4
  • 7-16 [numpy] 函数2 (11:05).mp4
  • 8-1 [matplotlib] 基本绘制图形 (12:20).mp4
  • 8-2 [matplotlib] 设置样式 (05:38).mp4
  • 8-3 [matplotlib] 绘制曲线 (08:59).mp4
  • 8-4 [matplotlib] subplot的使用 (07:57).mp4
  • 8-5 [matplotlib] 绘制散点图 (19:22).mp4
  • 8-6 [matplotlib] 绘制不同样式不同颜色的线条 (10:39).mp4
  • 8-7 [matplotlib] 绘制柱状图 (09:11).mp4
  • 8-8 [matplotlib] bar及barh函数的使用 (14:44).mp4
  • 8-9 [matplotlib] 柱状图使用实例 (16:17).mp4
  • 8-10 [matplotlib] 绘制饼状图 (10:16).mp4
  • 8-11 [matplotlib] 绘制直方图 (08:50).mp4
  • 8-12 [matplotlib] 绘制等高线图和三维图 (10:52).mp4
  • 9-1 [并发编程] 多任务的概念 (07:58).mp4
  • 9-2 [并发编程] 创建子进程并调用 (14:18).mp4
  • 9-3 [并发编程] join方法的使用 (09:28).mp4
  • 9-4 [并发编程] 属性的使用_多任务的创建 (14:10).mp4
  • 9-5 [并发编程] 使用继承方式创建进程 (08:17).mp4
  • 9-6 [并发编程] 进程池的使用 (14:00).mp4
  • 9-7 [并发编程] 多个进程之间数据不共享 (06:35).mp4
  • 9-8 [并发编程] 队列常用方法使用 (10:51).mp4
  • 9-9 [并发编程] 进程之间通信 (09:35).mp4
  • 9-10 [并发编程] 进程和线程的区别 (05:56).mp4
  • 9-11 [并发编程] thead创建线程 (11:12).mp4
  • 9-12 [并发编程] threading模块创建线程 (18:07).mp4
  • 9-13 [并发编程] 线程之间共享全局变量 (17:40).mp4
  • 9-14 [并发编程] 互斥锁 (09:00).mp4
  • 9-15 [并发编程] 线程同步的使用 (10:02).mp4
  • 9-16 [并发编程] 生成者消费者模式 (12:45).mp4
  • 9-17 [并发编程] ThreadLocal的使用 (08:57).mp4