这是一套按章节整理的 Python 学习与实践代码,内容覆盖 Python 基础语法、函数、面向对象、文件操作、数据可视化、爬虫、PySpark 和机器学习等主题。项目以可运行示例为主,适合按目录循序阅读、练习和查阅。
- 18 个主题章节,约 250 个 Python 示例文件
- 从基础语法逐步过渡到数据处理、爬虫、Spark 和机器学习
- 每个章节按知识点拆分脚本,文件名对应主要内容
- 包含数据可视化、Scrapy 项目和数据分析小案例
Python-daima-learn/
├── 01Python/ # 环境验证与 Hello World
├── 02Python语法/ # 字面量、变量、类型、运算符、字符串、输入输出
├── 03Python判断语句/ # if / elif / else 与判断案例
├── 04Python循环语句/ # while、for、循环嵌套与中断
├── 05Python函数/ # 函数定义、参数、返回值、作用域
├── 06Python数据容器/ # 列表、元组、字符串、集合、字典
├── 07Python函数进阶/ # 多返回值、可变参数、lambda
├── 08Python文件操作/ # 编码、读取、写入、追加
├── 09Python异常,模块与包/ # 异常处理、模块导入、自定义包
├── 10Python数据可视化/ # JSON 与 pyecharts 基础图表
├── 11Python数据可视化-地图可视化/ # 中国地图与疫情数据地图
├── 12Python数据可视化-动态柱状图/ # 时间线动态柱状图
├── 13Python对象/ # 类、对象、封装、继承、多态、类型注解
├── 14Python-SQL/ # SQL 练习目录
├── 15Python-PySpark/ # SparkContext、RDD 转换与行动操作
├── 16Python闭包/ # 闭包、装饰器、设计模式、线程、Socket、正则
├── 17Python爬虫/ # urllib、requests、解析、Selenium、Scrapy
├── 18Python机器学习/ # sklearn 分类、回归、特征工程与聚类
├── my_utils/ # 自定义字符串与文件工具包
├── requirements.txt # 第三方依赖
└── README.md
| 章节 | 主要内容 |
|---|---|
| 01Python | Python 环境验证与最简单脚本 |
| 02Python语法 | 字面量、注释、变量、数据类型、类型转换、运算符、字符串、格式化、input |
| 03Python判断语句 | 布尔类型、比较运算符、条件分支、分支嵌套与综合案例 |
| 04Python循环语句 | while、for、循环嵌套、break、continue 与九九乘法表 |
| 05Python函数 | 函数定义、参数传递、返回值、文档字符串、嵌套调用与作用域 |
| 06Python数据容器 | list、tuple、str、set、dict 的常见操作、切片与遍历 |
| 07Python函数进阶 | 多返回值、多种参数形式、函数作为参数、lambda 匿名函数 |
| 08Python文件操作 | 文件编码、读取、写出、追加写入与文件综合案例 |
| 09Python异常,模块与包 | 异常捕获与传递、模块导入、自定义模块和包、第三方包安装 |
| 10Python数据可视化 | JSON 数据转换、pyecharts 折线图与柱状图 |
| 11Python数据可视化-地图可视化 | pyecharts 地图与全国疫情数据展示 |
| 12Python数据可视化-动态柱状图 | 基础柱状图、时间线柱状图与 GDP 动态排名 |
| 13Python对象 | 类与对象、成员方法、构造方法、封装、继承、多态、类型注解 |
| 14Python-SQL | SQL 练习目录,内容待补充 |
| 15Python-PySpark | SparkContext、RDD 的 map、flatMap、reduceByKey、filter、sortBy 等操作 |
| 16Python闭包 | 闭包、装饰器、单例模式、工厂模式、多线程、Socket、正则表达式与递归 |
| 17Python爬虫 | urllib、requests、BeautifulSoup、XPath、jsonpath、Selenium 与 Scrapy |
| 18Python机器学习 | sklearn 数据集、分类、回归、特征预处理、特征抽取、KNN、K-means |
| my_utils | 可在其他脚本中导入的字符串和文件操作工具 |
- Python 3.10 或更高版本
- Windows 10/11(部分示例使用 Windows 路径和系统功能)
- 可选:Java 8/11/17(运行 PySpark 示例时需要)
- 可选:MySQL(运行 PyMySQL 示例时需要)
- 可选:Chrome 或 Edge 浏览器(运行 Selenium 示例时需要)
大部分基础语法示例只使用 Python 标准库。数据可视化、爬虫、PySpark 和机器学习示例需要安装对应第三方包。
git clone https://github.com/znnw/python-data-science-lab.git
cd Python-daima-learn
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt如果 PowerShell 不允许执行激活脚本,可以直接使用虚拟环境中的 Python:
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe ".\02Python语法\01字面量.py"| 目标 | 命令 |
|---|---|
| 运行基础语法示例 | python ".\02Python语法\01字面量.py" |
| 生成 pyecharts 图表 | python ".\10Python数据可视化\03pyecharts使用.py" |
| 运行 requests 爬虫 | python ".\17Python爬虫\31request的基本使用.py" |
| 运行机器学习示例 | python ".\18Python机器学习\01随机森林.py" |
| 运行 PySpark 示例 | python ".\15Python-PySpark\01PySpark.py" |
数据可视化脚本会在当前目录生成 HTML 文件,使用浏览器打开即可查看图表。
| 主题 | 主要依赖 |
|---|---|
| 数据处理 | numpy、pandas、scipy |
| 数据可视化 | matplotlib、pyecharts |
| 网络爬虫 | requests、beautifulsoup4、lxml、scrapy、selenium、jsonpath |
| 机器学习 | scikit-learn、joblib |
| 大数据 | pyspark |
| 数据库 | PyMySQL |
| 中文分词 | jieba |
完整依赖见 requirements.txt。不同示例可以按需安装,不必一次运行全部章节。
涉及登录、视频下载和数据库的示例会从环境变量读取配置,真实值不要写入代码或提交到仓库。运行前可以在当前 PowerShell 会话中设置:
$env:BAIDU_COOKIE = "<your-cookie>"
$env:BAIDU_TRANSLATE_TOKEN = "<your-token>"
$env:WEIBO_COOKIE = "<your-cookie>"
$env:GUSHIWEN_EMAIL = "<your-email>"
$env:GUSHIWEN_PASSWORD = "<your-password>"
$env:DEMO_VIDEO_URL = "<your-video-url>"
$env:DB_HOST = "localhost"
$env:DB_PORT = "3306"
$env:DB_USER = "root"
$env:DB_PASSWORD = "<your-database-password>"
$env:DB_NAME = "spider01"-
修改本地路径
部分脚本使用D:\...等绝对路径。运行前请根据自己的文件位置修改路径,建议优先使用相对路径。 -
准备示例数据
地图可视化、动态柱状图和部分爬虫脚本依赖本地数据文件或目标网页结构,需自行准备数据。 -
Cookie 和登录状态会过期
微博、百度翻译等示例涉及 Cookie 或 Token。目标网站更新后请求参数可能失效,示例仅用于学习请求流程。 -
PySpark 需要额外环境
运行 Spark 示例前需要安装 Java,并根据本机 Python 位置设置PYSPARK_PYTHON。部分示例中的 Python 和输出路径需要修改。 -
Selenium 驱动
Selenium 脚本需要与浏览器版本匹配的 WebDriver。驱动程序和演示视频不建议提交到 Git 仓库。 -
不要提交敏感信息
不要在代码中提交真实的 Cookie、Token、账号密码、数据库密码或个人信息。建议使用环境变量或本地.env文件,并确保.env已被.gitignore排除。 -
14Python-SQL 尚未填充
当前该目录尚未填充,后续可补充建表、查询和 Python 连接数据库的示例。
本项目用于个人学习与技术练习,未添加开源许可证。如需公开复用或分发,请先补充合适的许可证文件。