Python 学习路线
Python 学习路线 2022
1 学习路线
学会基础,足够应付工作了。
1.1 基础
-
Python 安装
-
开发工具
- PyCharm
- Sublime
- VS Code
-
变量
- 定义变量
- 关键字
- 命名规则
- 基本数据类型
- 类型转换
-
运算符和表达式
-
流程控制
- 条件分支
- 循环
-
基本数据结构
- 字符串
- 列表
- 元组
- 集合
- 字典
-
函数
- 定义
- 参数传递
- 作用域
- lambda 表达式
- 常用内置函数
-
⭐ 面向对象编程
-
类和对象
-
三大特性
-
封装
-
self
-
属性
-
方法
- 类方法
- 实例方法
- 静态方法
-
访问控制
-
-
继承
- 单继承
- 多继承
-
多态
- 方法重写
-
-
运算符重载
-
装饰器
-
反射
-
-
模块
-
导入模块
-
常用模块
- 文件处理
- 日期时间
-
-
包
- 导入包
- 生成包
-
异常处理
- 捕获异常
- try … else … finally 结构
- 自定义异常
-
文件操作
- 文件开闭
- 文件读写
1.2 进阶
-
函数进阶
- 闭包
- 匿名函数
- 生成器函数
- 装饰器
- 高阶函数
-
正则表达式
-
数据库编程
-
数据库基础
-
SQL 编写
-
查询
- 聚合
- 分组
- 关联
- 排序
-
事务
-
数据库设计
-
数据库调优
-
-
并发编程
- 同步和异步
- 阻塞和非阻塞
- 多线程
- 多进程
- 协程
- 并发类库
-
网络编程
- 网络基础(七层模型、IP)
- 网络协议(TCP、UDP、HTTP、HTTPS、FTP、DNS)
- WebSocket
1.3 web 开发
-
Django 框架
-
安装与 Demo
-
MVT 分层
-
模型
-
数据库基础
-
ORM
- 单表查询
- 多表查询
- 聚合查询
-
-
视图
-
模板
- 模板语法
- 静态资源
-
路由
-
Django Admin 管理工具
-
测试
-
会话
-
鉴权
-
文件上传
-
中间件
-
高级特性
-
分页
-
缓存
- 本地缓存
- Redis 分布式缓存
-
序列化
-
信号
-
celery 任务调度
-
-
Restful API 开发
- 概念
- 数据序列化
- Django Rest Framework
-
部署
-
项目实战
-
-
前端基础
- HTML
- CSS
- JavaScript
-
Flask 框架
1.4 爬虫
-
概念
-
合法性
-
数据抓取
-
常用网络协议(http / https)概念
-
请求
- 请求头
- 请求参数
- 请求类型
-
响应
- 响应头
- 响应参数
-
requests 模块
-
urllib 模块
-
模拟登陆
-
静态 / 动态网站抓取
-
无头浏览器
- selenium
- puppeteer
-
-
数据解析
- 常用标签
- BeautifulSoup
- 正则表达式
- xpath
-
数据导出
-
文件
- Excel
- CSV
-
数据库
- MongoDB
- MySQL
-
中间件
- Redis
-
-
Scrapy 框架
-
核心概念
- 命令行工具
- Spiders
- Selectors
- Items
- Item Loaders
- 管道
- Scrapy Shell
- Link Extractors
-
调度器
-
分布式爬虫
-
部署
-
-
并发异步爬虫
- aioHttp
- asyncio
-
高级
- IP 代理
- 验证码识别
- APP 抓取
- 增量式爬虫
-
项目实战
-
反爬虫
- 请求头限制
- 验证码
- 黑白名单
- 封禁 IP
- 数据加密
- 数据混淆
- 行为分析
1.5 自动化运维
- Linux 环境
- Shell 脚本编写
- 脚本管理
- 脚本发布
- Python 运维库
- 常用运维工具
1.6 数据分析(数据科学)
-
环境搭建
- Anaconda
- Conda
- Miniconda
- Jupyter Notebook
-
常用数据结构
-
常用类库
-
Numpy
- 数组
- 索引
- 切片
- 多维数组
- 函数
-
Pandas
- Series
- DataFrame
- 索引
- 对齐
- 函数
- 统计
-
-
数据处理
- 数据清洗
- 层次化索引
- 数据连接
- 数据合并
- 分组聚合
- 轴向旋转
-
数据可视化
- matplotlib
- seaborn
- pyechart
1.7 算法(人工智能)
鱼皮自己没怎么接触人工智能,结合网上很多大神的资料整理而成,也有一定参考意义。
-
数学基础
- 高等数学
- 线性代数
- 概率论
- 统计分析
-
机器学习
-
特征工程
-
模型
- 模型分类
- 模型评估
- 模型训练
- 模型调优
-
常用算法
-
监督与无监督学习
-
回归(有监督)
- 线性回归
- 决策树
- 集成算法
-
分类(有监督)
- 逻辑回归
- 决策树
- 支持向量机
- 集成算法
- 贝叶斯算法
-
聚类(无监督)
- k-means
- dbscan
-
降维
- 主成分分析
- 线性判别分析
-
进阶
- GBDT 提升算法
- lightgbm
- EM 算法
- 隐马尔科夫模型
-
-
多因子模型
-
常用库
- Scikit-learn
-
量化交易策略
-
-
深度学习
-
数据预处理
-
算法
- 神经网络
- 卷积神经网络
- 递归神经网络
- 对抗生成网络
- 序列网络模型
-
常用算法
-
框架和平台
- Tenserflow2
- Pytorch
- Keras
- Caffe
-
-
自然语言处理
-
图像处理
-
计算机视觉
2 常用类库
Python 能被广泛应用,很大程度上是因为其丰富的类库,就是他人提前写好并封装的代码。基本你要做什么东西都能找到对应的类库,直接看文档用就行了,大大提高开发效率!
开源项目 awesome-python-cn
(地址:https://github.com/jobbole/awesome-python-cn) 和 awesome-python
(地址:https://github.com/vinta/awesome-python)已经帮大家整理了各方向的 Python 类库,数量非常多。鱼皮在此基础上筛选了一些相对优质的库,分享给大家。
2.1 通用
-
日期处理
- delorean:日期处理库
- pendulum:日期时间操作库
- dateutil:对标准 datetime 模块的强大扩展
-
终端优化
- IPython:功能丰富的交互式 Python 解析器
- Jupyter Notebook:基于网页的用于交互计算的应用程序
- Prettytable:生成美观的 ASCII 格式的表格
- Colorama:让终端具有颜色
- bashplotlib:在终端中进行基本绘图
- emoji:支持在 Python 终端输出表情
- Ipyvolume:在 Jupyter notebook 中可视化 3d 体积和字形
-
文本处理
- FlashText:高效的文本查找替换库
- furl:url 处理库
- pypinyin:汉字拼音转换工具
- simplejson:JSON 编 / 解码器
- JMESPath:JSON 查询语法库
-
其他
- Pipenv:Python 官方推荐的新一代包管理工具
- threading:自带的线程库
- multiprocessing:自带的多线程库
- Chardet:字符编码检测器
- logging:日志功能
- PySnooper:Python 调试工具
- sphinx:Python 文档生成器
- pyttsx3:文字转语音库
- PyWin32:提供和 windows 的交互
- shortuuid:生成唯一 uuid 的库
- more-itertools:支持迭代操作对象
- cryptography:密码学工具包
2.2 网络请求 & 解析
- requests:HTTP 请求库
- aiohttp:异步 HTTP 网络库
- scrapy:分布式网页采集框架
- pyspider:一个强大的爬虫系统
- BeautifulSoup:从 HTML 或 XML 文件中提取数据的库
- you-get:网页视频下载器
- wget:网页文件下载
- musicdl:Python 音乐下载器
2.3 文件处理
- openpyxl:Excel 读写库
- tablib:处理表格数据
- csvkit:用于转换和操作 CSV 的工具
- XlsxWriter:操作 Excel
- python-docx:操作 office word 文档
- PyPDF2:操作 PDF 文档
- pdfminer:从 PDF 文档中抽取信息的工具
- xhtml2pdf:HTML 转 PDF 工具
- WeasyPrint:可视化网页,并支持导出为 PDF
- html2text:将 HTML 转换为 Markdown 文档
- xmltodict:像处理 JSON 一样处理 XML
- moviepy:基于脚本的视频编辑模块
- eyeD3:操作音频文件的工具
- pyAudioAnalysis:音频特征提取分析
2.4 界面开发
- pyQT:跨平台的用户界面开发框架
- Turtle:交互式绘画库
- pyglet:跨平台界面及多媒体框架
- wxPython:Python 用户界面开发工具
- Pygame:一组用来开发游戏的 Python 模块
- Manim:Python 数学动画引擎
- progressbar:一个滚动条函数库
- progress:进度条输出
- tqdm:快速、可扩展的进度条
2.5 测试
- nose:测试框架
- faker:生成假数据
- PyAutoGUI:跨平台 GUI 自动测试模块
- coverage:代码覆盖率测量
- sqlmap:自动 SQL 注入和渗透测试工具
2.6 Web 开发
- Django:Python 界最流行的 web 框架
- Django REST framework:用于开发 web api 的框架
- FastAPI:快速构建 web 应用程序
- flask:Python 微型框架
- Twisted:一个事件驱动的网络引擎
2.7 运维
- psutil:跨平台的进程和系统工具模块
- supervisor:进程控制管理系统
- sh:让 Python 支持 shell 脚本
- dnspython:DNS 工具包
- scapy:数据包处理库
- pexpect:在伪终端中控制交互程序
- paramiko:远程连接服务
- Ansible:IT 自动化平台
- SaltStack:基础设施自动化和管理系统
- watchdog:管理文件系统事件的 API 和 shell 工具
2.8 图像处理 & 计算机视觉
- Pillow:图像处理库
- kornia:计算机视觉库
- Opencv:开源计算机视觉库
- Mahotas:计算机视觉和图像处理库
- Luminoth:计算机视觉的深度学习工具集
2.9 数据分析 & 数据科学
- NumPy:数值计算工具包
- Pandas:主流的数据分析工具
- pyecharts:基于百度 Echarts 的数据可视化库
- Dash:快速构建 Web 数据可视化应用
- matplotlib:Python 2D 绘图库
- Seaborn:使用 Matplotlib 进行统计数据可视化
- python-recsys:实现推荐系统的库
- vaex:高速大数据处理库
- SciPy:算法和数学工具库
- blaze:NumPy 和 Pandas 的大数据接口
- statsmodels:统计建模和计量经济学
2.10 人工智能
- Tensorflow:谷歌开源的最受欢迎的深度学习框架
- keras:深度学习封装库,快速上手神经网络
- Pytorch:具有张量和动态神经网络,并有强大 GPU 加速能力的深度学习框架
- Caffe2:一个轻量、模块化、可扩展的深度学习框架
- scikit-learn:基于 SciPy 构建的机器学习 Python 模块
- PyMC:马尔科夫链蒙特卡洛采样工具
- mmdetection:深度学习目标检测工具箱
- imbalanced-learn:不平衡学习工具包
- XGBoost:分布式梯度增强库
- Gym:强化学习算法的工具包
2.11 自然语言处理
- NLTK:自然语言处理工具包
- Gensim:话题建模库
- Pattern:自然语言处理工具
- fuzzywuzzy:用于字符串模糊匹配、令牌匹配等
- TextBlob:为进行普通自然语言处理任务提供一致的 API
- PyFlux:时间序列处理库
- jieba:中文分词工具
3 岗位
3.1 腾讯校招 Python 相关岗位:https://join.qq.com/post.html?keyword=python
3.2 岗位薪资查询:OfferShow 小程序
3.3 运维工程师
3.4 Web 开发工程师(后端、全栈为主)
3.5 测试工程师
3.6 数据分析师
3.7 产品经理
3.8 算法工程师
- 机器学习
- 计算机视觉
- NLP
- 多媒体处理
3.9 大数据工程师
- 大数据开发
- 数据挖掘
3.10 网络爬虫工程师
3.11 技术研究员
4 资源
4.1 视频
-
零基础
- ⭐ 千锋教育 700 集零基础 Python 教程:https://www.bilibili.com/video/BV1R7411F7JV(非常全面,基础、web 开发、爬虫、数据分析、AI 基础都讲了,例子也很丰富)
- ⭐ 黑马程序员 600 集 Python 教程:https://www.bilibili.com/video/BV1ex411x7Em(比较全面,基于 Linux 环境学习,以 Python 基础 + 面向对象为重点,还包含一部分游戏开发)
- ⭐ Python 全栈开发教程:https://www.bilibili.com/video/BV1wD4y1o7AS(很纯粹的 Python 基础教程,案例多,适合快速入门)
- 小甲鱼 -《零基础入门学习 Python》最新版:https://www.bilibili.com/video/av52080698(可惜,更新到一半就没了。。)
- 【麻省理工学院-中文字幕版】Python 和计算机科学导论公开课:https://www.bilibili.com/video/BV1ty4y1x7xP(适合外语不错的同学课外看,感受国外教学氛围)
- 阿里云 python 工程师学习:https://developer.aliyun.com/graph/python(有在线编程体验)
- 鱼皮公众号【程序员鱼皮】后台回复 Python,也有一套视频课
-
其他
-
Web 开发
- Python Django 项目实战教程:https://www.bilibili.com/video/BV1pq4y1W7a1
- Python + 微信小程序实战开发:https://www.bilibili.com/video/BV1Xy4y1s792(挺完整,后台用的 Django 框架)
-
数据结构与算法
- Python 数据结构与算法全套 100 节:https://www.bilibili.com/video/BV1uA411N7c5
- 【北京大学】数据结构与算法 Python 版(完整版):https://www.bilibili.com/video/BV1VC4y1x7uv
-
爬虫
- 2020 年 Python 爬虫全套课程(学完可做项目):https://www.bilibili.com/video/BV1Yh411o7Sz
- Python 爬虫编程基础 5 天速成:https://www.bilibili.com/video/BV12E411A7ZQ(很短的爬虫实战入门课)
-
数据分析
- 自学数据分析课程:https://www.bilibili.com/video/BV1ZM4y1u7uF(很纯粹的数据分析 + 可视化课程,适合办公党快速上手)
- 完整数据分析课程:https://www.bilibili.com/video/BV1vV411p7D6(数据分析 + 机器学习,很全面)
- Python 数据分析入门视频合集:https://shimowendang.com/docs/36pykCPH6XCjKJcv/read
-
其他
- 一天搞定人脸识别项目(python+opencv):https://www.bilibili.com/video/BV1Lq4y1Z7dm
- Python 自动化办公:https://www.bilibili.com/video/BV1uv411W7Fi(主要是处理 Excel)
-
4.2 书籍
- ⭐《Python 编程:从入门到实践》:https://www.code-nav.cn/rd/?rid=cbddf0af6064484f002658102cdbba17
- 《python 学习手册》:https://www.code-nav.cn/rd/?rid=79550af260643c8e0ce47ab84633e200
- 《笨办法学 Python3》:https://www.code-nav.cn/rd/?rid=b00064a760643bb90cbba72836995fd5
- 《Python 编程快速上手》(第 2 版):https://book.douban.com/subject/35387685/
- 《Python Cookbook 中文版》(第 3 版):https://book.douban.com/subject/26381341/
- 《父与子的编程之旅》:https://www.code-nav.cn/rd/?rid=8937eaa9615519680ed81c0e3165ee65
- ⭐《Python 深度学习》https://www.code-nav.cn/rd/?rid=2d44d6c261624dd31224ed1b5841920c
- 《Python 网络爬虫实战》第 2 版:https://www.code-nav.cn/rd/?rid=b00064a7606440d40cbc2fca19192e4f
- 《Python 数据科学手册》:https://book.douban.com/subject/27667378/
- 《利用 Python 进行数据分析》:https://book.douban.com/subject/25779298/
- 《轻量级 Django》:https://www.code-nav.cn/rd/?rid=28ee4e3e60641fd60d91fd2441418491
- ⭐ 编程导航 - 超多 Python 书籍直接免费下载 :https://www.code-nav.cn/topic/Python(选择书籍标签)
- Python Guide(英文):https://docs.python-guide.org/
4.3 文档
- ⭐ Python 入门教程(菜鸟教程):https://www.runoob.com/python3/python3-tutorial.html(可以在线写代码练习)
- Python 入门教程(W3Cschool):https://www.w3cschool.cn/python3/(支持手机阅读)
- Python 中文学习大本营:http://www.pythondoc.com/(一系列文档教程的集合)
- Python 100 天:https://github.com/jackfrued/Python-100-Days
- 廖雪峰 Python 入门教程:https://www.liaoxuefeng.com/wiki/1016959663602400
- 莫烦 Python 教程:https://mofanpy.com/(包括基础、数据处理、机器学习等,部分内容有视频)
- Django 官方教程:https://docs.djangoproject.com/zh-hans/3.2/intro/tutorial01/
- Manim 动画引擎教程:https://docs.manim.org.cn/shaders/
- A Byte of Python:https://python.swaroopch.com/(Python 英文入门教程)
- ⭐ 谷歌 Python 代码规范:https://google.github.io/styleguide/pyguide.html
4.4 实战
- ⭐ 蓝桥云课 Python 实战合集:https://www.lanqiao.cn/courses/?fee=free&tag=Python
- 腾讯云在线 Python 实验:https://cloud.tencent.com/developer/labs/gallery?tagId=23
- 阿里云 Python 入门实验:https://developer.aliyun.com/adc/scenario/e04fe73ad95d4782aef7aecca206196e
- 华为云沙箱实验室:https://lab.huaweicloud.com/testList.html
- Python123:https://python123.io/index(在线编程,部分课收费)
- CheckiO 游戏学 Python:https://py.checkio.org/
- 通过测试交互式学 Python(英文):https://github.com/gregmalcolm/python_koans
- 交互式 Python 挑战(英文):https://github.com/donnemartin/interactive-coding-challenges
- 通过项目学 Python(英文):https://github.com/practical-tutorials/project-based-learning#python
- 通过示例交互式学 Python(英文):https://github.com/jerry-git/learn-python3
4.5 代码
- 数据结构和算法 Python 实现:https://github.com/keon/algorithms
- 《剑指 Offer》算法面试题 Python 实现:https://github.com/JushuangQiao/Python-Offer
- 设计模式 Python 实现:http://www.pythontip.com/python-patterns/detail/abstract_factory
- Python Machine Learning 代码:https://github.com/rasbt/python-machine-learning-book-3rd-edition
- Python 小脚本:https://github.com/RealHacker/python-gems
4.6 合集
- ⭐ GitHub Python 专区:https://github.com/topics/python
- 神经网络和深度学习相关框架:https://github.com/ChristosChristofidis/awesome-deep-learning
- 机器学习相关库:https://github.com/josephmisiti/awesome-machine-learning#python
- 开源 Python 应用程序大全:https://github.com/mahmoud/awesome-python-applications
- Python 类库大全:https://github.com/vinta/awesome-python
- Python 类库大全(中文版):https://github.com/jobbole/awesome-python-cn
- Python 异步大全:https://github.com/timofurrer/awesome-asyncio
- jupyter 相关:https://github.com/markusschanta/awesome-jupyter
- Python 书单:https://github.com/Junnplus/awesome-python-books
- Python 书单(中文版):https://github.com/jobbole/awesome-python-books
- StackOverflow Python 专区:https://stackoverflow.com/questions/tagged/python(解决问题必备)
- ⭐ 掘金 Python 专区:https://juejin.cn/tag/Python(看技术文章)
4.7 社区
- ⭐ PythonTab:https://www.pythontab.com/(中文 Python 开发者社区)
- Learnku Python 技术论坛:https://learnku.com/python
- 开源中国:https://www.oschina.net/(综合的开源社区)
4.8 工具
- ⭐ Python 在线编程(菜鸟教程):https://c.runoob.com/compile/6/
- 腾讯云 Python 在线手册:https://cloud.tencent.com/developer/devdocs
- Python 在线手册汇总:https://docs.pythontab.com/
4.9 面试题
- ⭐ 牛客 Python 专项练习:https://www.nowcoder.com/intelligentTest
- 牛客 Python 试题:https://www.nowcoder.com/search?query=python&type=question
- 牛客机器学习面试题:https://www.nowcoder.com/search?type=question&query=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0
- 牛客机器学习笔试:https://www.nowcoder.com/search?type=paper&query=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0
- Python 面试题整理:https://github.com/taizilongxu/interview_python(高星)
- Python 面试题整理:https://github.com/kenwoodjw/python_interview_question
- 机器学习面试题:https://geektutu.com/post/qa-ml.html
4.10 其他
- ⭐ Python 常见问题:https://docs.python.org/zh-cn/3/faq/general.html(官方提供的 )
- GitHub Python 趋势:https://github.com/trending/python
- Python 模块推荐:https://pymotw.com/3/
- Python 练习册:https://github.com/Yixiaohan/show-me-the-code(一些 Python 练习题目)