[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-263":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},263,"Python-100-Days","jackfrued\u002FPython-100-Days","jackfrued","Python - 100天从新手到大师","",null,"Jupyter Notebook",183434,55669,6034,530,0,43,203,897,196,117,false,"master",true,[],"2026-06-17 04:00:02","## Python - 100天从新手到大师\n\n> **作者**：骆昊\n>\n> **说明**：如果访问 GitHub 比较慢的话，可以关注我的知乎账号（[**Python-Jack**](https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fjackfrued)），上面的[“**从零开始学Python**”](\u003Chttps:\u002F\u002Fzhuanlan.zhihu.com\u002Fc_1216656665569013760>)专栏（对应本项目前 20 天的内容）比较适合初学者，其他的专栏如“[**数据思维和统计思维**](https:\u002F\u002Fwww.zhihu.com\u002Fcolumn\u002Fc_1620074540456964096)”、“[**基于Python的数据分析**](https:\u002F\u002Fwww.zhihu.com\u002Fcolumn\u002Fc_1217746527315496960)”、“[**说走就走的AI之旅**](https:\u002F\u002Fwww.zhihu.com\u002Fcolumn\u002Fc_1628900668109946880)”等也在持续更新中，欢迎大家关注、点赞和评论。目前免费的 QQ 交流群已经人满为患，消息太杂乱也没有办法一一回复，如果有一起打卡学习或付费咨询的需求，可以加入付费交流群，新用户可以通过下方二维码付费之后添加我的私人微信（微信号：**jackfrued**），然后邀请大家进入付费学习打卡群，添加微信时请备注好自己的称呼和需求，我会为大家提供力所能及的帮助。\n>\n> \u003Cimg src=\"res\u002Fpay_qr_code.png\" style=\"zoom:32%;\">\n>\n> 本项目对应的部分视频已经同步到 [Bilibili](https:\u002F\u002Fspace.bilibili.com\u002F1177252794)，有兴趣的小伙伴可以点赞、投币、关注，一键三连支持一下！\n\n### Python应用领域和职业发展分析\n\n简单的说，Python是一个“优雅”、“明确”、“简单”的编程语言。\n\n - 学习曲线低，非专业人士也能上手\n - 开源系统，拥有强大的生态圈\n - 解释型语言，完美的平台可移植性\n - 动态类型语言，支持面向对象和函数式编程\n - 代码规范程度高，可读性强\n\nPython在以下领域都有用武之地。\n\n - 后端开发 - Python \u002F Java \u002F Go \u002F PHP\n - DevOps - Python \u002F Shell \u002F Ruby\n - 数据采集 - Python \u002F C++ \u002F Java\n - 量化交易 - Python \u002F C++ \u002F R\n - 数据科学 - Python \u002F R \u002F Julia \u002F Matlab\n - 机器学习 - Python \u002F R \u002F C++ \u002F Julia\n - 自动化测试 - Python \u002F Shell\n\n作为一名Python开发者，根据个人的喜好和职业规划，可以选择的就业领域也非常多。\n\n- Python后端开发工程师（服务器、云平台、数据接口）\n- Python运维工程师（自动化运维、SRE、DevOps）\n- Python数据分析师（数据分析、商业智能、数字化运营）\n- Python数据科学家（机器学习、深度学习、算法专家）\n- Python爬虫工程师（不推荐此赛道！！！）\n- Python测试工程师（自动化测试、测试开发）\n\n> **说明**：目前，**数据科学赛道是非常热门的方向**，因为不管是互联网行业还是传统行业都已经积累了大量的数据，各行各业都需要数据科学家从已有的数据中发现更多的商业价值，从而为企业的决策提供数据的支撑，这就是所谓的数据驱动决策。\n\n给初学者的几个建议：\n\n- **Make English as your working language.** （让英语成为你的工作语言）\n- **Practice makes perfect.** （熟能生巧）\n- **All experience comes from the mistakes you've made.** （所有的经验都源于犯过的错误）\n- **Don't be a freeloader.** （学会分享，不要只当伸手党）\n- **Embrace AI to boost your productivity.**（拥抱AI，提升效率）\n\n### Day01~20 - Python语言基础\n\n#### Day01 - [初识Python](.\u002FDay01-20\u002F01.初识Python.md)\n\n1. Python简介\n    - Python编年史\n    - Python优缺点\n    - Python应用领域\n2. 安装Python环境\n    - Windows环境\n    - macOS环境\n\n#### Day02 - [第一个Python程序](.\u002FDay01-20\u002F02.第一个Python程序.md)\n\n1. 编写代码的工具\n2. 你好世界\n3. 注释你的代码\n\n#### Day03 - [Python语言中的变量](.\u002FDay01-20\u002F03.Python语言中的变量.md)\n\n1. 一些常识\n2. 变量和类型\n3. 变量命名\n4. 变量的使用\n\n#### Day04 - [Python语言中的运算符](.\u002FDay01-20\u002F04.Python语言中的运算符.md)\n\n1. 算术运算符\n2. 赋值运算符\n3. 比较运算符和逻辑运算符\n4. 运算符和表达式应用\n    - 华氏和摄氏温度转换\n    - 计算圆的周长和面积\n    - 判断闰年\n\n#### Day05 - [分支结构](.\u002FDay01-20\u002F05.分支结构.md)\n\n1. 使用if和else构造分支结构\n2. 使用match和case构造分支结构\n3. 分支结构的应用\n    - 分段函数求值\n    - 百分制成绩转换成等级\n    - 计算三角形的周长和面积\n\n#### Day06 - [循环结构](.\u002FDay01-20\u002F06.循环结构.md)\n\n1. for-in循环\n2. while循环\n3. break和continue\n4. 嵌套的循环结构\n5. 循环结构的应用\n    - 判断素数\n    - 最大公约数\n    - 猜数字游戏\n\n#### Day07 - [分支和循环结构实战](.\u002FDay01-20\u002F07.分支和循环结构实战.md)\n\n1. 例子1：100以内的素数\n2. 例子2：斐波那契数列\n3. 例子3：寻找水仙花数\n4. 例子4：百钱百鸡问题\n5. 例子5：CRAPS赌博游戏\n\n#### Day08 - [常用数据结构之列表-1](.\u002FDay01-20\u002F08.常用数据结构之列表-1.md)\n\n1. 创建列表\n2. 列表的运算\n3. 元素的遍历\n\n#### Day09 - [常用数据结构之列表-2](.\u002FDay01-20\u002F09.常用数据结构之列表-2.md)\n\n1. 列表的方法\n    - 添加和删除元素\n    - 元素位置和频次\n    - 元素排序和反转\n2. 列表生成式\n3. 嵌套列表\n4. 列表的应用\n\n#### Day10 - [常用数据结构之元组](.\u002FDay01-20\u002F10.常用数据结构之元组.md)\n\n1. 元组的定义和运算\n2. 打包和解包操作\n3. 交换变量的值\n4. 元组和列表的比较\n\n#### Day11 - [常用数据结构之字符串](.\u002FDay01-20\u002F11.常用数据结构之字符串.md)\n\n1. 字符串的定义\n    - 转义字符\n    - 原始字符串\n    - 字符的特殊表示\n2. 字符串的运算\n    - 拼接和重复\n    - 比较运算\n    - 成员运算\n    - 获取字符串长度\n    - 索引和切片\n3. 字符的遍历\n4. 字符串的方法\n    - 大小写相关操作\n    - 查找操作\n    - 性质判断\n    - 格式化\n    - 修剪操作\n    - 替换操作\n    - 拆分与合并\n    - 编码与解码\n    - 其他方法\n\n#### Day12 - [常用数据结构之集合](.\u002FDay01-20\u002F12.常用数据结构之集合.md)\n\n1. 创建集合\n2. 元素的变量\n3. 集合的运算\n    - 成员运算\n    - 二元运算\n    - 比较运算\n4. 集合的方法\n5. 不可变集合\n\n#### Day13 - [常用数据结构之字典](.\u002FDay01-20\u002F13.常用数据结构之字典.md)\n\n1. 创建和使用字典\n2. 字典的运算\n3. 字典的方法\n4. 字典的应用\n\n#### Day14 - [函数和模块](.\u002FDay01-20\u002F14.函数和模块.md)\n\n1. 定义函数\n2. 函数的参数\n    - 位置参数和关键字参数\n    - 参数的默认值\n    - 可变参数\n3. 用模块管理函数\n4. 标准库中的模块和函数\n\n#### Day15 - [函数应用实战](.\u002FDay01-20\u002F15.函数应用实战.md)\n\n1. 例子1：随机验证码\n2. 例子2：判断素数\n3. 例子3：最大公约数和最小公倍数\n4. 例子4：数据统计\n5. 例子5：双色球随机选号\n\n#### Day16 - [函数使用进阶](.\u002FDay01-20\u002F16.函数使用进阶.md)\n\n1. 高阶函数\n2. Lambda函数\n3. 偏函数\n\n#### Day17 - [函数高级应用](.\u002FDay01-20\u002F17.函数高级应用.md)\n\n1. 装饰器\n2. 递归调用\n\n#### Day18 - [面向对象编程入门](.\u002FDay01-20\u002F18.面向对象编程入门.md)\n\n1. 类和对象\n2. 定义类\n3. 创建和使用对象\n4. 初始化方法\n5. 面向对象的支柱\n6. 面向对象案例\n    - 例子1：数字时钟\n    - 例子2：平面上的点\n\n#### Day19 - [面向对象编程进阶](.\u002FDay01-20\u002F19.面向对象编程进阶.md)\n\n1. 可见性和属性装饰器\n2. 动态属性\n3. 静态方法和类方法\n4. 继承和多态\n\n#### Day20 - [面向对象编程应用](.\u002FDay01-20\u002F20.面向对象编程应用.md)\n\n1. 扑克游戏\n2. 工资结算系统\n\n### Day21~30 - Python语言应用\n\n#### Day21 - [文件读写和异常处理](.\u002FDay21-30\u002F21.文件读写和异常处理.md)\n\n1. 打开和关闭文件\n2. 读写文本文件\n3. 异常处理机制\n4. 上下文管理器语法\n5. 读写二进制文件\n\n#### Day22 - [对象的序列化和反序列化](.\u002FDay21-30\u002F22.对象的序列化和反序列化.md)\n\n1. JSON概述\n2. 读写JSON格式的数据\n3. 包管理工具pip\n4. 使用网络API获取数据\n\n#### Day23 - [Python读写CSV文件](23.Python读写CSV文件.md)\n\n1. CSV文件介绍\n2. 将数据写入CSV文件\n3. 从CSV文件读取数据\n\n#### Day24 - [Python读写Excel文件-1](.\u002FDay21-30\u002F24.用Python读写Excel文件-1.md)\n\n1. Excel简介\n2. 读Excel文件\n3. 写Excel文件\n4. 调整样式\n5. 公式计算\n\n#### Day25 - [Python读写Excel文件-2](.\u002FDay21-30\u002F25.Python读写Excel文件-2.md)\n\n1. Excel简介\n2. 读Excel文件\n3. 写Excel文件\n4. 调整样式\n5. 生成统计图表\n\n#### Day26 - [Python操作Word和PowerPoint文件](.\u002FDay21-30\u002F26.Python操作Word和PowerPoint文件.md)\n\n1. 操作Word文档\n2. 生成PowerPoint\n\n#### Day27 - [Python操作PDF文件](.\u002FDay21-30\u002F27.Python操作PDF文件.md)\n\n1. 从PDF中提取文本\n2. 旋转和叠加页面\n3. 加密PDF文件\n4. 批量添加水印\n5. 创建PDF文件\n\n#### Day28 - [Python处理图像](.\u002FDay21-30\u002F28.Python处理图像.md)\n\n1. 入门知识\n2. 用Pillow处理图像\n3. 使用Pillow绘图\n\n#### Day29 - [Python发送邮件和短信](.\u002FDay21-30\u002F29.Python发送邮件和短信.md)\n\n1. 发送电子邮件\n2. 发送短信\n\n#### Day30 - [正则表达式的应用](.\u002FDay21-30\u002F30.正则表达式的应用.md)\n\n1. 正则表达式相关知识\n2. Python对正则表达式的支持\n    - 例子1：输入验证\n    - 例子2：内容提取\n    - 例子3：内容替换\n    - 例子4：长句拆分\n\n### Day31~35 - 其他相关内容\n\n#### [Python语言进阶](.\u002FDay31-35\u002F31.Python语言进阶.md)\n\n1. 重要知识点\n2. 数据结构和算法\n3. 函数的使用方式\n4. 面向对象相关知识\n5. 迭代器和生成器\n6. 并发编程\n\n#### [Web前端入门](.\u002FDay31-35\u002F32-33.Web前端入门.md)\n\n1. 用HTML标签承载页面内容\n2. 用CSS渲染页面\n3. 用JavaScript处理交互式行为\n5. Vue.js入门\n6. Element的使用\n7. Bootstrap的使用\n\n#### [玩转Linux操作系统](.\u002FDay31-35\u002F34-35.玩转Linux操作系统.md)\n\n1. 操作系统发展史和Linux概述\n2. Linux基础命令\n3. Linux中的实用程序\n4. Linux的文件系统\n5. Vim编辑器的应用\n6. 环境变量和Shell编程\n7. 软件的安装和服务的配置\n8. 网络访问和管理\n9. 其他相关内容\n\n### Day36~45 - 数据库基础和进阶\n\n#### Day36 - [关系型数据库和MySQL概述](.\u002FDay36-45\u002F36.关系型数据库和MySQL概述.md)\n\n1. 关系型数据库概述\n2. MySQL简介\n3. 安装MySQL\n4. MySQL基本命令\n\n#### Day37 - [SQL详解之DDL](.\u002FDay36-45\u002F37.SQL详解之DDL.md)\n\n1. 建库建表\n2. 删除表和修改表\n\n#### Day38 - [SQL详解之DML](.\u002FDay36-45\u002F38.SQL详解之DML.md)\n\n1. insert操作\n2. delete操作\n3. update操作\n\n#### Day39 - [SQL详解之DQL](.\u002FDay36-45\u002F39.SQL详解之DQL.md)\n\n1. 投影和别名\n2. 筛选数据\n3. 空值处理\n4. 去重\n5. 排序\n6. 聚合函数\n7. 嵌套查询\n8. 分组操作\n9. 表连接\n    - 笛卡尔积\n    - 内连接\n    - 自然连接\n    - 外连接\n10. 窗口函数\n    - 定义窗口\n    - 排名函数\n    - 取数函数\n\n#### Day40 - [SQL详解之DCL](.\u002FDay36-45\u002F40.SQL详解之DCL.md)\n\n1. 创建用户\n2. 授予权限\n3. 召回权限\n\n#### Day41 - [MySQL新特性](.\u002FDay36-45\u002F41.MySQL新特性.md)\n\n- JSON类型\n- 窗口函数\n- 公共表表达式\n\n#### Day42 - [视图、函数和过程](.\u002FDay36-45\u002F42.视图、函数和过程.md)\n\n1. 视图\n    - 使用场景\n    - 创建视图\n    - 使用限制\n2. 函数\n    - 内置函数\n    - 用户自定义函数（UDF）\n3. 过程\n    - 创建过程\n    - 调用过程\n\n#### Day43 - [索引](.\u002FDay36-45\u002F43.索引.md)\n\n1. 执行计划\n2. 索引的原理\n3. 创建索引\n    - 普通索引\n    - 唯一索引\n    - 前缀索引\n    - 复合索引\n4. 注意事项\n\n#### Day44 - [Python接入MySQL数据库](.\u002FDay36-45\u002F44.Python接入MySQL数据库.md)\n\n1. 安装三方库\n2. 创建连接\n3. 获取游标\n4. 执行SQL语句\n5. 通过游标抓取数据\n6. 事务提交和回滚\n7. 释放连接\n8. 编写ETL脚本\n\n#### Day45 - [Hive实战](.\u002FDay36-45\u002F45.Hive实战.md)\n\n1. Hive概述\n2. 环境搭建\n3. 常用命令\n4. 基本语法\n5. 建表操作\n6. 写入数据\n7. 常用函数\n8. 分组聚合\n9. 抽样操作\n10. 排序操作\n11. 横向展开\n12. 性能优化\n\n### Day46~60 - 实战Django\n\n#### Day46 - [Django快速上手](.\u002FDay46-60\u002F46.Django快速上手.md)\n\n1. Web应用工作机制\n2. HTTP请求和响应\n3. Django框架概述\n4. 5分钟快速上手\n\n#### Day47 - [深入模型](.\u002FDay46-60\u002F47.深入模型.md)\n\n1. 关系型数据库配置\n2. 使用ORM完成对模型的CRUD操作\n3. 管理后台的使用\n4. Django模型最佳实践\n5. 模型定义参考\n\n#### Day48 - [静态资源和Ajax请求](.\u002FDay46-60\u002F48.静态资源和Ajax请求.md)\n\n1. 加载静态资源\n2. Ajax概述\n3. 用Ajax实现投票功能\n\n#### Day49 - [Cookie和Session](.\u002FDay46-60\u002F49.Cookie和Session.md)\n\n1. 实现用户跟踪\n2. cookie和session的关系\n3. Django框架对session的支持\n4. 视图函数中的cookie读写操作\n\n#### Day50 - [报表和日志](.\u002FDay46-60\u002F50.制作报表.md)\n\n1. 通过`HttpResponse`修改响应头\n2. 使用`StreamingHttpResponse`处理大文件\n3. 使用`xlwt`生成Excel报表\n4. 使用`reportlab`生成PDF报表\n5. 使用ECharts生成前端图表\n\n#### Day51 - [日志和调试工具栏](.\u002FDay46-60\u002F51.日志和调试工具栏.md)\n\n1. 配置日志\n2. 配置Django-Debug-Toolbar\n3. 优化ORM代码\n\n#### Day52 - [中间件的应用](.\u002FDay46-60\u002F52.中间件的应用.md)\n\n1. 什么是中间件\n2. Django框架内置的中间件\n3. 自定义中间件及其应用场景\n\n#### Day53 - [前后端分离开发入门](.\u002FDay46-60\u002F53.前后端分离开发入门.md)\n\n1. 返回JSON格式的数据\n2. 用Vue.js渲染页面\n\n#### Day54 - [RESTful架构和DRF入门](.\u002FDay46-60\u002F54.RESTful架构和DRF入门.md)\n\n1. REST概述\n2. DRF库使用入门\n3. 前后端分离开发\n4. JWT的应用\n\n#### Day55 - [RESTful架构和DRF进阶](.\u002FDay46-60\u002F55.RESTful架构和DRF进阶.md)\n\n1. 使用CBV\n2. 数据分页\n3. 数据筛选\n\n#### Day56 - [使用缓存](.\u002FDay46-60\u002F56.使用缓存.md)\n\n1. 网站优化第一定律\n2. 在Django项目中使用Redis提供缓存服务\n3. 在视图函数中读写缓存\n4. 使用装饰器实现页面缓存\n5. 为数据接口提供缓存服务\n\n#### Day57 - [接入三方平台](.\u002FDay46-60\u002F57.接入三方平台.md)\n\n1. 文件上传表单控件和图片文件预览\n2. 服务器端如何处理上传的文件\n\n#### Day58 - [异步任务和定时任务](.\u002FDay46-60\u002F58.异步任务和定时任务.md)\n\n1. 网站优化第二定律\n2. 配置消息队列服务\n3. 在项目中使用Celery实现任务异步化\n4. 在项目中使用Celery实现定时任务\n\n#### Day59 - [单元测试](.\u002FDay46-60\u002F59.单元测试.md)\n\n#### Day60 - [项目上线](.\u002FDay46-60\u002F60.项目上线.md)\n\n1. Python中的单元测试\n2. Django框架对单元测试的支持\n3. 使用版本控制系统\n4. 配置和使用uWSGI\n5. 动静分离和Nginx配置\n6. 配置HTTPS\n7. 配置域名解析\n\n### Day61~65 - 网络数据采集\n\n#### Day61 - [网络数据采集概述](.\u002FDay61-65\u002F61.网络数据采集概述.md)\n\n1. 网络爬虫的概念及其应用领域\n2. 网络爬虫的合法性探讨\n3. 开发网络爬虫的相关工具\n4. 一个爬虫程序的构成\n\n#### Day62 - 数据抓取和解析\n\n1. [使用`requests`三方库实现数据抓取](.\u002FDay61-65\u002F62.用Python获取网络资源-1.md)\n2. [页面解析的三种方式](.\u002FDay61-65\u002F62.用Python解析HTML页面-2.md)\n    - 正则表达式解析\n    - XPath解析\n    - CSS选择器解析\n\n\n#### Day63 - Python中的并发编程\n\n1. [多线程](.\u002FDay61-65\u002F63.Python中的并发编程-1.md)\n2. [多进程](.\u002FDay61-65\u002F63.Python中的并发编程-2.md)\n3. [异步I\u002FO](.\u002FDay61-65\u002F63.Python中的并发编程-3.md)\n\n#### Day64 - [使用Selenium抓取网页动态内容](.\u002FDay61-65\u002F64.使用Selenium抓取网页动态内容.md)\n\n1. 安装Selenium\n2. 加载页面\n3. 查找元素和模拟用户行为\n4. 隐式等待和显示等待\n5. 执行JavaScript代码\n6. Selenium反爬破解\n7. 设置无头浏览器\n\n#### Day65 - [爬虫框架Scrapy简介](.\u002FDay61-65\u002F65.爬虫框架Scrapy简介.md)\n\n1. Scrapy核心组件\n2. Scrapy工作流程\n3. 安装Scrapy和创建项目\n4. 编写蜘蛛程序\n5. 编写中间件和管道程序\n6. Scrapy配置文件\n\n### Day66~80 - Python数据分析\n\n#### Day66 - [数据分析概述](.\u002FDay66-80\u002F66.数据分析概述.md)\n\n1. 数据分析师的职责\n2. 数据分析师的技能栈\n3. 数据分析相关库\n\n#### Day67 - [环境准备](.\u002FDay66-80\u002F67.环境准备.md)\n\n1. 安装和使用anaconda\n    - conda相关命令\n2. 安装和使用jupyter-lab\n    - 安装和启动\n    - 使用小技巧\n\n#### Day68 - [NumPy的应用-1](.\u002FDay66-80\u002F68.NumPy的应用-1.md)\n\n1. 创建数组对象\n2. 数组对象的属性\n3. 数组对象的索引运算\n    - 普通索引\n    - 花式索引\n    - 布尔索引\n    - 切片索引\n4. 案例：使用数组处理图像\n\n#### Day69 - [NumPy的应用-2](.\u002FDay66-80\u002F69.NumPy的应用-2.md)\n\n1. 数组对象的相关方法\n    - 获取描述性统计信息\n    - 其他相关方法\n\n#### Day70 - [NumPy的应用-3](.\u002FDay66-80\u002F70.NumPy的应用-3.md)\n\n1. 数组的运算\n    - 数组跟标量的运算\n    - 数组跟数组的运算\n2. 通用一元函数\n3. 通用二元函数\n4. 广播机制\n5. Numpy常用函数\n\n#### Day71 - [NumPy的应用-4](.\u002FDay66-80\u002F71.NumPy的应用-4.md)\n\n1. 向量\n2. 行列式\n3. 矩阵\n4. 多项式\n\n#### Day72 - [深入浅出pandas-1](.\u002FDay66-80\u002F72.深入浅出pandas-1.md)\n\n1. 创建Series对象\n2. Series对象的运算\n3. Series对象的属性和方法\n\n#### Day73 - [深入浅出pandas-2](.\u002FDay66-80\u002F73.深入浅出pandas-2.md)\n\n1. 创建DataFrame对象\n2. DataFrame对象的属性和方法\n3. 读写DataFrame中的数据\n\n#### Day74 - [深入浅出pandas-3](.\u002FDay66-80\u002F74.深入浅出pandas-3.md)\n\n1. 数据重塑\n    - 数据拼接\n    - 数据合并\n2. 数据清洗\n    - 缺失值\n    - 重复值\n    - 异常值\n    - 预处理\n\n#### Day75 - [深入浅出pandas-4](.\u002FDay66-80\u002F75.深入浅出pandas-4.md)\n\n1. 数据透视\n    - 获取描述性统计信息\n    - 排序和头部值\n    - 分组聚合\n    - 透视表和交叉表\n2. 数据呈现\n\n#### Day76 - [深入浅出pandas-5](.\u002FDay66-80\u002F76.深入浅出pandas-5.md)\n\n1. 计算同比环比\n2. 窗口计算\n3. 相关性判定\n\n#### Day77 - [深入浅出pandas-6](.\u002FDay66-80\u002F77.深入浅出pandas-6.md)\n\n1. 索引的使用\n    - 范围索引\n    - 分类索引\n    - 多级索引\n    - 间隔索引\n    - 日期时间索引\n\n#### Day78 - [数据可视化-1](.\u002FDay66-80\u002F78.数据可视化-1.md)\n\n1. 安装和导入matplotlib\n2. 创建画布\n3. 创建坐标系\n4. 绘制图表\n    - 折线图\n    - 散点图\n    - 柱状图\n    - 饼状图\n    - 直方图\n    - 箱线图\n5. 显示和保存图表\n\n#### Day79 - [数据可视化-2](.\u002FDay66-80\u002F79.数据可视化-2.md)\n\n1. 高阶图表\n    - 气泡图\n    - 面积图\n    - 雷达图\n    - 玫瑰图\n    - 3D图表\n\n#### Day80 - [数据可视化-3](.\u002FDay66-80\u002F80.数据可视化-3.md)\n\n1. Seaborn\n2. Pyecharts\n\n### Day81~90 - 机器学习\n\n#### Day81 - [浅谈机器学习](.\u002FDay81-90\u002F81.浅谈机器学习.md)\n\n1. 人工智能发展史\n2. 什么是机器学习\n3. 机器学习应用领域\n4. 机器学习的分类\n5. 机器学习的步骤\n6. 第一次机器学习\n\n#### Day82 - [k最近邻算法](.\u002FDay81-90\u002F82.k最近邻算法.md)\n\n1. 距离的度量\n2. 数据集介绍\n3. kNN分类的实现\n4. 模型评估\n5. 参数调优\n6. kNN回归的实现\n\n#### Day83 - [决策树和随机森林](.\u002FDay81-90\u002F83.决策树和随机森林.md)\n\n1. 决策树的构建\n    - 特征选择\n    - 数据分裂\n    - 树的剪枝\n2. 实现决策树模型\n3. 随机森林概述\n\n#### Day84 - [朴素贝叶斯算法](.\u002FDay81-90\u002F84.朴素贝叶斯算法.md)\n\n1. 贝叶斯定理\n2. 朴素贝叶斯\n3. 算法原理\n    - 训练阶段\n    - 预测阶段\n    - 代码实现\n4. 算法优缺点\n\n#### Day85 - [回归模型](.\u002FDay81-90\u002F85.回归模型.md)\n\n1. 回归模型的分类\n2. 回归系数的计算\n3. 新数据集介绍\n4. 线性回归代码实现\n5. 回归模型的评估\n6. 引入正则化项\n7. 线性回归另一种实现\n8. 多项式回归\n9. 逻辑回归\n\n#### Day86 - [K-Means聚类算法](.\u002FDay81-90\u002F86.K-Means聚类算法.md)\n\n1. 算法原理\n2. 数学描述\n3. 代码实现\n\n#### Day87 - [集成学习算法](.\u002FDay81-90\u002F87.集成学习算法.md)\n\n1. 算法分类\n2. AdaBoost\n3. GBDT\n4. XGBoost\n5. LightGBM\n\n#### Day88 - [神经网络模型](.\u002FDay81-90\u002F88.神经网络模型.md)\n\n1. 基本构成\n2. 工作原理\n3. 代码实现\n4. 模型优缺点\n\n#### Day89 - [自然语言处理入门](.\u002FDay81-90\u002F89.自然语言处理入门.md)\n\n1. 词袋模型\n2. 词向量\n3. NPLM和RNN\n4. Seq2Seq\n5. Transformer\n\n#### Day90 - [机器学习实战](.\u002FDay81-90\u002F90.机器学习实战.md)\n\n1. 数据探索\n1. 特征工程\n1. 模型训练\n1. 模型评估\n1. 模型部署\n\n### Day91~99 - [团队项目开发](.\u002FDay91-100)\n\n#### 第91天：[团队项目开发的问题和解决方案](.\u002FDay91-100\u002F91.团队项目开发的问题和解决方案.md)\n\n1. 软件过程模型\n   - 经典过程模型（瀑布模型）\n     - 可行性分析（研究做还是不做），输出《可行性分析报告》。\n     - 需求分析（研究做什么），输出《需求规格说明书》和产品界面原型图。\n     - 概要设计和详细设计，输出概念模型图（ER图）、物理模型图、类图、时序图等。\n     - 编码 \u002F 测试。\n     - 上线 \u002F 维护。\n\n     瀑布模型最大的缺点是无法拥抱需求变化，整套流程结束后才能看到产品，团队士气低落。\n   - 敏捷开发（Scrum）- 产品所有者、Scrum Master、研发人员 - Sprint\n     - 产品的Backlog（用户故事、产品原型）。\n     - 计划会议（评估和预算）。\n     - 日常开发（站立会议、番茄工作法、结对编程、测试先行、代码重构……）。\n     - 修复bug（问题描述、重现步骤、测试人员、被指派人）。\n     - 发布版本。\n     - 评审会议（Showcase，用户需要参与）。\n     - 回顾会议（对当前迭代周期做一个总结）。\n\n     > 补充：敏捷软件开发宣言\n     >\n     > - **个体和互动** 高于 流程和工具\n     > - **工作的软件** 高于 详尽的文档\n     > - **客户合作** 高于 合同谈判\n     > - **响应变化** 高于 遵循计划\n\n     ![](.\u002Fres\u002Fagile-scrum-sprint-cycle.png)\n\n     > 角色：产品所有者（决定做什么，能对需求拍板的人）、团队负责人（解决各种问题，专注如何更好的工作，屏蔽外部对开发团队的影响）、开发团队（项目执行人员，具体指开发人员和测试人员）。\n\n     > 准备工作：商业案例和资金、合同、憧憬、初始产品需求、初始发布计划、入股、组建团队。\n\n     >  敏捷团队通常人数为8-10人。\n\n     >  工作量估算：将开发任务量化，包括原型、Logo设计、UI设计、前端开发等，尽量把每个工作分解到最小任务量，最小任务量标准为工作时间不能超过两天，然后估算总体项目时间。把每个任务都贴在看板上面，看板上分三部分：to do（待完成）、in progress（进行中）和done（已完成）。\n\n2. 项目团队组建\n\n   - 团队的构成和角色\n\n     ![company_architecture](.\u002Fres\u002Fcompany_architecture.png)\n\n   - 编程规范和代码审查（`flake8`、`pylint`）\n\n     ![](.\u002Fres\u002Fpylint.png)\n\n   - Python中的一些“惯例”（请参考[《Python惯例-如何编写Pythonic的代码》](.\u002F番外篇\u002FPython编程惯例.md)）\n\n   - 影响代码可读性的原因：\n\n     - 代码注释太少或者没有注释\n     - 代码破坏了语言的最佳实践\n     - 反模式编程（意大利面代码、复制-黏贴编程、自负编程、……）\n   \n3. 团队开发工具介绍\n   - 版本控制：Git、Mercury\n   - 缺陷管理：[Gitlab](https:\u002F\u002Fabout.gitlab.com\u002F)、[Redmine](http:\u002F\u002Fwww.redmine.org.cn\u002F)\n   - 敏捷闭环工具：[禅道](https:\u002F\u002Fwww.zentao.net\u002F)、[JIRA](https:\u002F\u002Fwww.atlassian.com\u002Fsoftware\u002Fjira\u002Ffeatures)\n   - 持续集成：[Jenkins](https:\u002F\u002Fjenkins.io\u002F)、[Travis-CI](https:\u002F\u002Ftravis-ci.org\u002F)\n\n   请参考[《团队项目开发的问题和解决方案》](Day91-100\u002F91.团队项目开发的问题和解决方案.md)。\n\n##### 项目选题和理解业务\n\n1. 选题范围设定\n\n   - CMS（用户端）：新闻聚合网站、问答\u002F分享社区、影评\u002F书评网站等。\n   - MIS（用户端+管理端）：KMS、KPI考核系统、HRS、CRM系统、供应链系统、仓储管理系统等。\n\n   - App后台（管理端+数据接口）：二手交易类、报刊杂志类、小众电商类、新闻资讯类、旅游类、社交类、阅读类等。\n   - 其他类型：自身行业背景和工作经验、业务容易理解和把控。\n\n2. 需求理解、模块划分和任务分配\n\n   - 需求理解：头脑风暴和竞品分析。\n   - 模块划分：画思维导图（XMind），每个模块是一个枝节点，每个具体的功能是一个叶节点（用动词表述），需要确保每个叶节点无法再生出新节点，确定每个叶子节点的重要性、优先级和工作量。\n   - 任务分配：由项目负责人根据上面的指标为每个团队成员分配任务。\n\n   ![](.\u002Fres\u002Frequirements_by_xmind.png)\n\n3. 制定项目进度表（每日更新）\n\n   | 模块 | 功能     | 人员   | 状态     | 完成 | 工时 | 计划开始 | 实际开始 | 计划结束 | 实际结束 | 备注             |\n   | ---- | -------- | ------ | -------- | ---- | ---- | -------- | -------- | -------- | -------- | ---------------- |\n   | 评论 | 添加评论 | 王大锤 | 正在进行 | 50%  | 4    | 2018\u002F8\u002F7 |          | 2018\u002F8\u002F7 |          |                  |\n   |      | 删除评论 | 王大锤 | 等待     | 0%   | 2    | 2018\u002F8\u002F7 |          | 2018\u002F8\u002F7 |          |                  |\n   |      | 查看评论 | 白元芳 | 正在进行 | 20%  | 4    | 2018\u002F8\u002F7 |          | 2018\u002F8\u002F7 |          | 需要进行代码审查 |\n   |      | 评论投票 | 白元芳 | 等待     | 0%   | 4    | 2018\u002F8\u002F8 |          | 2018\u002F8\u002F8 |          |                  |\n\n4. OOAD和数据库设计\n\n  - UML（统一建模语言）的类图\n\n    ![uml](.\u002Fres\u002Fuml-class-diagram.png)\n\n  - 通过模型创建表（正向工程），例如在Django项目中可以通过下面的命令创建二维表。\n\n    ```Shell\n    python manage.py makemigrations app\n    python manage.py migrate\n    ```\n\n  - 使用PowerDesigner绘制物理模型图。\n\n    ![](.\u002Fres\u002Fpower-designer-pdm.png)\n\n  - 通过数据表创建模型（反向工程），例如在Django项目中可以通过下面的命令生成模型。\n\n    ```Shell\n    python manage.py inspectdb > app\u002Fmodels.py\n    ```\n\n#### 第92天：[Docker容器技术详解](.\u002FDay91-100\u002F92.Docker容器技术详解.md)\n\n1. Docker简介\n2. 安装Docker\n3. 使用Docker创建容器（Nginx、MySQL、Redis、Gitlab、Jenkins）\n4. 构建Docker镜像（Dockerfile的编写和相关指令）\n5. 容器编排（Docker-compose）\n6. 集群管理（Kubernetes）\n\n#### 第93天：[MySQL性能优化](.\u002FDay91-100\u002F93.MySQL性能优化.md)\n\n1. 基本原则\n2. InnoDB引擎\n3. 索引的使用和注意事项\n4. 数据分区\n5. SQL优化\n6. 配置优化\n7. 架构优化\n\n#### 第94天：[网络API接口设计](.\u002FDay91-100\u002F94.网络API接口设计.md)\n\n1. 设计原则\n    - 关键问题\n    - 其他问题\n2. 文档撰写\n\n#### 第95天：[使用Django开发商业项目](.\u002FDay91-100\u002F95.使用Django开发商业项\t目.md)\n\n##### 项目开发中的公共问题\n\n1. 数据库的配置（多数据库、主从复制、数据库路由）\n2. 缓存的配置（分区缓存、键设置、超时设置、主从复制、故障恢复（哨兵））\n3. 日志的配置\n4. 分析和调试（Django-Debug-ToolBar）\n5. 好用的Python模块（日期计算、图像处理、数据加密、三方API）\n\n##### REST API设计\n\n1. RESTful架构\n   - [理解RESTful架构](http:\u002F\u002Fwww.ruanyifeng.com\u002Fblog\u002F2011\u002F09\u002Frestful.html)\n   - [RESTful API设计指南](http:\u002F\u002Fwww.ruanyifeng.com\u002Fblog\u002F2014\u002F05\u002Frestful_api.html)\n   - [RESTful API最佳实践](http:\u002F\u002Fwww.ruanyifeng.com\u002Fblog\u002F2018\u002F10\u002Frestful-api-best-practices.html)\n2. API接口文档的撰写\n   - [RAP2](http:\u002F\u002Frap2.taobao.org\u002F)\n   - [YAPI](http:\u002F\u002Fyapi.demo.qunar.com\u002F)\n3. [django-REST-framework](https:\u002F\u002Fwww.django-rest-framework.org\u002F)的应用\n\n##### 项目中的重点难点剖析\n\n1. 使用缓存缓解数据库压力 - Redis\n2. 使用消息队列做解耦合和削峰 - Celery + RabbitMQ\n\n#### 第96天：[软件测试和自动化测试](Day91-100\u002F96.软件测试和自动化测试.md)\n\n##### 单元测试\n\n1. 测试的种类\n2. 编写单元测试（`unittest`、`pytest`、`nose2`、`tox`、`ddt`、……）\n3. 测试覆盖率（`coverage`）\n\n##### Django项目部署\n\n1. 部署前的准备工作\n   - 关键设置（SECRET_KEY \u002F DEBUG \u002F ALLOWED_HOSTS \u002F 缓存 \u002F 数据库）\n   - HTTPS \u002F CSRF_COOKIE_SECUR  \u002F SESSION_COOKIE_SECURE  \n   - 日志相关配置\n2. Linux常用命令回顾\n3. Linux常用服务的安装和配置\n4. uWSGI\u002FGunicorn和Nginx的使用\n   - Gunicorn和uWSGI的比较\n     - 对于不需要大量定制化的简单应用程序，Gunicorn是一个不错的选择，uWSGI的学习曲线比Gunicorn要陡峭得多，Gunicorn的默认参数就已经能够适应大多数应用程序。\n     - uWSGI支持异构部署。\n     - 由于Nginx本身支持uWSGI，在线上一般都将Nginx和uWSGI捆绑在一起部署，而且uWSGI属于功能齐全且高度定制的WSGI中间件。\n     - 在性能上，Gunicorn和uWSGI其实表现相当。\n5. 使用虚拟化技术（Docker）部署测试环境和生产环境\n\n##### 性能测试\n\n1. AB的使用\n2. SQLslap的使用\n3. sysbench的使用\n\n##### 自动化测试\n\n1. 使用Shell和Python进行自动化测试\n2. 使用Selenium实现自动化测试\n   - Selenium IDE\n   - Selenium WebDriver\n   - Selenium Remote Control\n3. 测试工具Robot Framework介绍\n\n#### 第97天：[电商网站技术要点剖析](.\u002FDay91-100\u002F97.电商网站技术要点剖析.md)\n\n1. 商业模式和需求要点\n2. 物理模型设计\n3. 第三方登录\n4. 缓存预热和查询缓存\n5. 购物车的实现\n6. 支付功能集成\n7. 秒杀和超卖问题\n8. 静态资源管理\n9. 全文检索方案\n\n#### 第98天：[项目部署上线和性能调优](.\u002FDay91-100\u002F98.项目部署上线和性能调优.md)\n\n1. MySQL数据库调优\n2. Web服务器性能优化\n   - Nginx负载均衡配置\n   - Keepalived实现高可用\n3. 代码性能调优\n   - 多线程\n   - 异步化\n4. 静态资源访问优化\n   - 云存储\n   - CDN\n\n#### 第99天：[面试中的公共问题](.\u002FDay91-100\u002F99.面试中的公共问题.md)\n\n1. 计算机基础\n2. Python基础\n3. Web框架相关\n4. 爬虫相关问题\n5. 数据分析\n6. 项目相关\n\n### 第100天 - [补充内容](.\u002FDay91-100\u002F100.补充内容.md)\n\n- 面试宝典\n    - Python 面试宝典\n    - SQL 面试宝典（数据分析师）\n    - 商业分析面试宝典\n    - 机器学习面试宝典\n\n- 机器学习数学基础\n- 深度学习\n    - 计算机视觉\n    - 大语言模型\n","该项目旨在通过100天的学习计划，帮助编程新手掌握Python语言并达到精通水平。它涵盖了从基础语法到高级特性的全面教程，使用Jupyter Notebook编写，便于读者实践和理解代码。内容包括变量、运算符、控制结构、数据结构等基础知识，并延伸至实际应用案例，如数据分析、机器学习等领域。适合任何希望系统性地学习Python的初学者，尤其是对数据科学感兴趣的人士。",2,"2026-06-16 02:32:39","top_all"]