Python-100-Days README

The project's README from github.com/jackfrued/Python-100-Days. As one markdown file: README.md.

Python - 100天从新手到大师

作者:骆昊

说明1:最近有一个非常火的岗位叫做 FDE(前沿部署工程师),国内首套 FDE 实战课已经为大家准备好了,请点击传送门。

说明2:如果访问 GitHub 比较慢的话,可以关注我的知乎账号(Python-Jack),上面的“从零开始学Python”专栏比较适合初学者,其他的专栏如“数据思维和统计思维”、“基于Python的数据分析”、“说走就走的AI之旅”、“AI智能体开发”等也在持续创作和更新中,欢迎大家关注、点赞和评论。如果有一起打卡学习或付费咨询的需求,可以加入付费交流群,新用户可以通过下方二维码付费之后添加我的私人微信(微信号:jackfrued),然后邀请大家进入付费学习打卡群,添加微信时请备注好自己的称呼和需求,我会为大家提供力所能及的帮助。

说明3:本项目对应的部分视频已经同步到 Bilibili,有兴趣的小伙伴可以点赞、投币、关注,一键三连支持一下!

Python应用领域和职业发展分析

简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。

Python在以下领域都有用武之地。

作为一名Python开发者,根据个人的喜好和职业规划,可以选择的就业领域也非常多。

说明:目前,数据科学赛道是非常热门的方向,因为不管是互联网行业还是传统行业都已经积累了大量的数据,各行各业都需要数据科学家从已有的数据中发现更多的商业价值,从而为企业的决策提供数据的支撑,这就是所谓的数据驱动决策。

给初学者的几个建议:

Day01~20 - Python语言基础

Day01 - 初识Python

  1. Python简介
    • Python编年史
    • Python优缺点
    • Python应用领域
  2. 安装Python环境
    • Windows环境
    • macOS环境

Day02 - 第一个Python程序

  1. 编写代码的工具
  2. 你好世界
  3. 注释你的代码

Day03 - Python语言中的变量

  1. 一些常识
  2. 变量和类型
  3. 变量命名
  4. 变量的使用

Day04 - Python语言中的运算符

  1. 算术运算符
  2. 赋值运算符
  3. 比较运算符和逻辑运算符
  4. 运算符和表达式应用
    • 华氏和摄氏温度转换
    • 计算圆的周长和面积
    • 判断闰年

Day05 - 分支结构

  1. 使用if和else构造分支结构
  2. 使用match和case构造分支结构
  3. 分支结构的应用
    • 分段函数求值
    • 百分制成绩转换成等级
    • 计算三角形的周长和面积

Day06 - 循环结构

  1. for-in循环
  2. while循环
  3. break和continue
  4. 嵌套的循环结构
  5. 循环结构的应用
    • 判断素数
    • 最大公约数
    • 猜数字游戏

Day07 - 分支和循环结构实战

  1. 例子1:100以内的素数
  2. 例子2:斐波那契数列
  3. 例子3:寻找水仙花数
  4. 例子4:百钱百鸡问题
  5. 例子5:CRAPS赌博游戏

Day08 - 常用数据结构之列表-1

  1. 创建列表
  2. 列表的运算
  3. 元素的遍历

Day09 - 常用数据结构之列表-2

  1. 列表的方法
    • 添加和删除元素
    • 元素位置和频次
    • 元素排序和反转
  2. 列表生成式
  3. 嵌套列表
  4. 列表的应用

Day10 - 常用数据结构之元组

  1. 元组的定义和运算
  2. 打包和解包操作
  3. 交换变量的值
  4. 元组和列表的比较

Day11 - 常用数据结构之字符串

  1. 字符串的定义
    • 转义字符
    • 原始字符串
    • 字符的特殊表示
  2. 字符串的运算
    • 拼接和重复
    • 比较运算
    • 成员运算
    • 获取字符串长度
    • 索引和切片
  3. 字符的遍历
  4. 字符串的方法
    • 大小写相关操作
    • 查找操作
    • 性质判断
    • 格式化
    • 修剪操作
    • 替换操作
    • 拆分与合并
    • 编码与解码
    • 其他方法

Day12 - 常用数据结构之集合

  1. 创建集合
  2. 元素的变量
  3. 集合的运算
    • 成员运算
    • 二元运算
    • 比较运算
  4. 集合的方法
  5. 不可变集合

Day13 - 常用数据结构之字典

  1. 创建和使用字典
  2. 字典的运算
  3. 字典的方法
  4. 字典的应用

Day14 - 函数和模块

  1. 定义函数
  2. 函数的参数
    • 位置参数和关键字参数
    • 参数的默认值
    • 可变参数
  3. 用模块管理函数
  4. 标准库中的模块和函数

Day15 - 函数应用实战

  1. 例子1:随机验证码
  2. 例子2:判断素数
  3. 例子3:最大公约数和最小公倍数
  4. 例子4:数据统计
  5. 例子5:双色球随机选号

Day16 - 函数使用进阶

  1. 高阶函数
  2. Lambda函数
  3. 偏函数

Day17 - 函数高级应用

  1. 装饰器
  2. 递归调用

Day18 - 面向对象编程入门

  1. 类和对象
  2. 定义类
  3. 创建和使用对象
  4. 初始化方法
  5. 面向对象的支柱
  6. 面向对象案例
    • 例子1:数字时钟
    • 例子2:平面上的点

Day19 - 面向对象编程进阶

  1. 可见性和属性装饰器
  2. 动态属性
  3. 静态方法和类方法
  4. 继承和多态

Day20 - 面向对象编程应用

  1. 扑克游戏
  2. 工资结算系统

Day21~30 - Python语言应用

Day21 - 文件读写和异常处理

  1. 打开和关闭文件
  2. 读写文本文件
  3. 异常处理机制
  4. 上下文管理器语法
  5. 读写二进制文件

Day22 - 对象的序列化和反序列化

  1. JSON概述
  2. 读写JSON格式的数据
  3. 包管理工具pip
  4. 使用网络API获取数据

Day23 - Python读写CSV文件

  1. CSV文件介绍
  2. 将数据写入CSV文件
  3. 从CSV文件读取数据

Day24 - Python读写Excel文件-1

  1. Excel简介
  2. 读Excel文件
  3. 写Excel文件
  4. 调整样式
  5. 公式计算

Day25 - Python读写Excel文件-2

  1. Excel简介
  2. 读Excel文件
  3. 写Excel文件
  4. 调整样式
  5. 生成统计图表

Day26 - Python操作Word和PowerPoint文件

  1. 操作Word文档
  2. 生成PowerPoint

Day27 - Python操作PDF文件

  1. 从PDF中提取文本
  2. 旋转和叠加页面
  3. 加密PDF文件
  4. 批量添加水印
  5. 创建PDF文件

Day28 - Python处理图像

  1. 入门知识
  2. 用Pillow处理图像
  3. 使用Pillow绘图

Day29 - Python发送邮件和短信

  1. 发送电子邮件
  2. 发送短信

Day30 - 正则表达式的应用

  1. 正则表达式相关知识
  2. Python对正则表达式的支持
    • 例子1:输入验证
    • 例子2:内容提取
    • 例子3:内容替换
    • 例子4:长句拆分

Day31~35 - 其他相关内容

Python语言进阶

  1. 重要知识点
  2. 数据结构和算法
  3. 函数的使用方式
  4. 面向对象相关知识
  5. 迭代器和生成器
  6. 并发编程

Web前端入门

  1. 用HTML标签承载页面内容
  2. 用CSS渲染页面
  3. 用JavaScript处理交互式行为
  4. Vue.js入门
  5. Element的使用
  6. Bootstrap的使用

玩转Linux操作系统

  1. 操作系统发展史和Linux概述
  2. Linux基础命令
  3. Linux中的实用程序
  4. Linux的文件系统
  5. Vim编辑器的应用
  6. 环境变量和Shell编程
  7. 软件的安装和服务的配置
  8. 网络访问和管理
  9. 其他相关内容

Day36~45 - 数据库基础和进阶

Day36 - 关系型数据库和MySQL概述

  1. 关系型数据库概述
  2. MySQL简介
  3. 安装MySQL
  4. MySQL基本命令

Day37 - SQL详解之DDL

  1. 建库建表
  2. 删除表和修改表

Day38 - SQL详解之DML

  1. insert操作
  2. delete操作
  3. update操作

Day39 - SQL详解之DQL

  1. 投影和别名
  2. 筛选数据
  3. 空值处理
  4. 去重
  5. 排序
  6. 聚合函数
  7. 嵌套查询
  8. 分组操作
  9. 表连接
    • 笛卡尔积
    • 内连接
    • 自然连接
    • 外连接
  10. 窗口函数
    • 定义窗口
    • 排名函数
    • 取数函数

Day40 - SQL详解之DCL

  1. 创建用户
  2. 授予权限
  3. 召回权限

Day41 - MySQL新特性

Day42 - 视图、函数和过程

  1. 视图
    • 使用场景
    • 创建视图
    • 使用限制
  2. 函数
    • 内置函数
    • 用户自定义函数(UDF)
  3. 过程
    • 创建过程
    • 调用过程

Day43 - 索引

  1. 执行计划
  2. 索引的原理
  3. 创建索引
    • 普通索引
    • 唯一索引
    • 前缀索引
    • 复合索引
  4. 注意事项

Day44 - Python接入MySQL数据库

  1. 安装三方库
  2. 创建连接
  3. 获取游标
  4. 执行SQL语句
  5. 通过游标抓取数据
  6. 事务提交和回滚
  7. 释放连接
  8. 编写ETL脚本

Day45 - Hive实战

  1. Hive概述
  2. 环境搭建
  3. 常用命令
  4. 基本语法
  5. 建表操作
  6. 写入数据
  7. 常用函数
  8. 分组聚合
  9. 抽样操作
  10. 排序操作
  11. 横向展开
  12. 性能优化

Day46~60 - 实战Django

Day46 - Django快速上手

  1. Web应用工作机制
  2. HTTP请求和响应
  3. Django框架概述
  4. 5分钟快速上手

Day47 - 深入模型

  1. 关系型数据库配置
  2. 使用ORM完成对模型的CRUD操作
  3. 管理后台的使用
  4. Django模型最佳实践
  5. 模型定义参考

Day48 - 静态资源和Ajax请求

  1. 加载静态资源
  2. Ajax概述
  3. 用Ajax实现投票功能

Day49 - Cookie和Session

  1. 实现用户跟踪
  2. cookie和session的关系
  3. Django框架对session的支持
  4. 视图函数中的cookie读写操作

Day50 - 报表和日志

  1. 通过HttpResponse修改响应头
  2. 使用StreamingHttpResponse处理大文件
  3. 使用xlwt生成Excel报表
  4. 使用reportlab生成PDF报表
  5. 使用ECharts生成前端图表

Day51 - 日志和调试工具栏

  1. 配置日志
  2. 配置Django-Debug-Toolbar
  3. 优化ORM代码

Day52 - 中间件的应用

  1. 什么是中间件
  2. Django框架内置的中间件
  3. 自定义中间件及其应用场景

Day53 - 前后端分离开发入门

  1. 返回JSON格式的数据
  2. 用Vue.js渲染页面

Day54 - RESTful架构和DRF入门

  1. REST概述
  2. DRF库使用入门
  3. 前后端分离开发
  4. JWT的应用

Day55 - RESTful架构和DRF进阶

  1. 使用CBV
  2. 数据分页
  3. 数据筛选

Day56 - 使用缓存

  1. 网站优化第一定律
  2. 在Django项目中使用Redis提供缓存服务
  3. 在视图函数中读写缓存
  4. 使用装饰器实现页面缓存
  5. 为数据接口提供缓存服务

Day57 - 接入三方平台

  1. 文件上传表单控件和图片文件预览
  2. 服务器端如何处理上传的文件

Day58 - 异步任务和定时任务

  1. 网站优化第二定律
  2. 配置消息队列服务
  3. 在项目中使用Celery实现任务异步化
  4. 在项目中使用Celery实现定时任务

Day59 - 单元测试

Day60 - 项目上线

  1. Python中的单元测试
  2. Django框架对单元测试的支持
  3. 使用版本控制系统
  4. 配置和使用uWSGI
  5. 动静分离和Nginx配置
  6. 配置HTTPS
  7. 配置域名解析

Day61~65 - 网络数据采集

Day61 - 网络数据采集概述

  1. 网络爬虫的概念及其应用领域
  2. 网络爬虫的合法性探讨
  3. 开发网络爬虫的相关工具
  4. 一个爬虫程序的构成

Day62 - 数据抓取和解析

  1. 使用requests三方库实现数据抓取
  2. 页面解析的三种方式
    • 正则表达式解析
    • XPath解析
    • CSS选择器解析

Day63 - Python中的并发编程

  1. 多线程
  2. 多进程
  3. 异步I/O

Day64 - 使用Selenium抓取网页动态内容

  1. 安装Selenium
  2. 加载页面
  3. 查找元素和模拟用户行为
  4. 隐式等待和显示等待
  5. 执行JavaScript代码
  6. Selenium反爬破解
  7. 设置无头浏览器

Day65 - 爬虫框架Scrapy简介

  1. Scrapy核心组件
  2. Scrapy工作流程
  3. 安装Scrapy和创建项目
  4. 编写蜘蛛程序
  5. 编写中间件和管道程序
  6. Scrapy配置文件

Day66~80 - Python数据分析

Day66 - 数据分析概述

  1. 数据分析师的职责
  2. 数据分析师的技能栈
  3. 数据分析相关库

Day67 - 环境准备

  1. 安装和使用anaconda
    • conda相关命令
  2. 安装和使用jupyter-lab
    • 安装和启动
    • 使用小技巧

Day68 - NumPy的应用-1

  1. 创建数组对象
  2. 数组对象的属性
  3. 数组对象的索引运算
    • 普通索引
    • 花式索引
    • 布尔索引
    • 切片索引
  4. 案例:使用数组处理图像

Day69 - NumPy的应用-2

  1. 数组对象的相关方法
    • 获取描述性统计信息
    • 其他相关方法

Day70 - NumPy的应用-3

  1. 数组的运算
    • 数组跟标量的运算
    • 数组跟数组的运算
  2. 通用一元函数
  3. 通用二元函数
  4. 广播机制
  5. Numpy常用函数

Day71 - NumPy的应用-4

  1. 向量
  2. 行列式
  3. 矩阵
  4. 多项式

Day72 - 深入浅出pandas-1

  1. 创建Series对象
  2. Series对象的运算
  3. Series对象的属性和方法

Day73 - 深入浅出pandas-2

  1. 创建DataFrame对象
  2. DataFrame对象的属性和方法
  3. 读写DataFrame中的数据

Day74 - 深入浅出pandas-3

  1. 数据重塑
    • 数据拼接
    • 数据合并
  2. 数据清洗
    • 缺失值
    • 重复值
    • 异常值
    • 预处理

Day75 - 深入浅出pandas-4

  1. 数据透视
    • 获取描述性统计信息
    • 排序和头部值
    • 分组聚合
    • 透视表和交叉表
  2. 数据呈现

Day76 - 深入浅出pandas-5

  1. 计算同比环比
  2. 窗口计算
  3. 相关性判定

Day77 - 深入浅出pandas-6

  1. 索引的使用
    • 范围索引
    • 分类索引
    • 多级索引
    • 间隔索引
    • 日期时间索引

Day78 - 数据可视化-1

  1. 安装和导入matplotlib
  2. 创建画布
  3. 创建坐标系
  4. 绘制图表
    • 折线图
    • 散点图
    • 柱状图
    • 饼状图
    • 直方图
    • 箱线图
  5. 显示和保存图表

Day79 - 数据可视化-2

  1. 高阶图表
    • 气泡图
    • 面积图
    • 雷达图
    • 玫瑰图
    • 3D图表

Day80 - 数据可视化-3

  1. Seaborn
  2. Pyecharts

Day81~90 - 机器学习

Day81 - 浅谈机器学习

  1. 人工智能发展史
  2. 什么是机器学习
  3. 机器学习应用领域
  4. 机器学习的分类
  5. 机器学习的步骤
  6. 第一次机器学习

Day82 - k最近邻算法

  1. 距离的度量
  2. 数据集介绍
  3. kNN分类的实现
  4. 模型评估
  5. 参数调优
  6. kNN回归的实现

Day83 - 决策树和随机森林

  1. 决策树的构建
    • 特征选择
    • 数据分裂
    • 树的剪枝
  2. 实现决策树模型
  3. 随机森林概述

Day84 - 朴素贝叶斯算法

  1. 贝叶斯定理

Python-100-Days (jackfrued/Python-100-Days)

sql
Searching Database…

What is this?A free, day-by-day Python curriculum by Luo Hao (骆昊) that takes a complete beginner through 100 days of lessons covering core language fundamentals, file and database handling, web development with Django, web scraping, data analysis, and machine learning.
Is this a video course or a written tutorial?It is primarily a written, text-based curriculum of Jupyter Notebook lessons organized by day, though the author has also uploaded matching video lectures to Bilibili for some of the content.
Where should a beginner start?Start at Day01, which covers an introduction to Python and setting up the environment on Windows or macOS, then work through the days in order from language basics toward web dev, databases, and data science.
What tools do I need to follow along besides Python itself?Different sections need different setups: MySQL for the database days, Django and Redis for the web app section, and Anaconda with JupyterLab for the data analysis and machine learning days.
Is any part of this locked behind a paywall?The 100-day curriculum itself is fully free on GitHub, but the author also offers optional paid WeChat study groups and other paid Zhihu columns for extra consulting, which aren't required to use the course.
Who is this course aimed at?It targets people who want a path to professional Python roles such as backend development, DevOps, data analysis, data science, or testing; the author explicitly discourages treating web scraping as a career track.
Does the course include building a real Django web app?Yes, Day46 through Day60 walk through building a full Django project, covering the ORM, sessions and cookies, REST APIs with DRF and JWT, caching with Redis, Celery tasks, and deploying with Nginx and uWSGI.
What does the data analysis section use?Days 66-80 use Anaconda and JupyterLab together with NumPy, pandas, Matplotlib, Seaborn, and Pyecharts to cover data cleaning, reshaping, and visualization.
Does it cover machine learning algorithms?Starting around Day81, it introduces k-nearest neighbors, decision trees, random forests, and naive Bayes as a hands-on first pass at machine learning.
Is the course text available in English?No English version is mentioned; the lessons, comments, and notes are all written in Chinese, with companion Bilibili videos also aimed at Chinese-speaking learners.
Creator
jackfrued
Size
396.1 MB
Stars
187.3K
Updated
CommitJul 29
Age
8y
Commits · 90 Days