Python 基础教程
专为社会科学研究者设计的 Python 编程完整教程
课程简介
这是一套完整的 Python 编程教程,专为社会科学研究者(经济学、社会学、政治学等)设计。课程从零基础开始,通过 11 个模块、40+ 篇文章,系统讲解 Python 编程的核心概念和数据分析技能。
快速测试:Python vs Stata vs R
下面是三种语言的简单对比代码,可用于测试在线运行环境:
Python 代码
# 定义变量
name = "Alice"
age = 25
income = 50000.50
# 显示结果
print(f"姓名: {name}")
print(f"年龄: {age}")
print(f"收入: ${income:,.2f}")
# 简单计算
average_income = income / 12
print(f"月均收入: ${average_income:,.2f}")输出:
姓名: Alice
年龄: 25
收入: $50,000.50
月均收入: $4,166.71Stata 代码
* 定义变量
clear
set obs 1
gen name = "Alice"
gen age = 25
gen income = 50000.50
* 显示结果
display "姓名: " name[1]
display "年龄: " age[1]
display "收入: $" income[1]
* 简单计算
gen average_income = income / 12
display "月均收入: $" average_income[1]输出:
姓名: Alice
年龄: 25
收入: $50000.5
月均收入: $4166.708R 代码
# 定义变量
name <- "Alice"
age <- 25
income <- 50000.50
# 显示结果
cat("姓名:", name, "\n")
cat("年龄:", age, "\n")
cat("收入: $", format(income, big.mark=",", nsmall=2), "\n")
# 简单计算
average_income <- income / 12
cat("月均收入: $", format(average_income, big.mark=",", nsmall=2), "\n")输出:
姓名: Alice
年龄: 25
收入: $ 50,000.50
月均收入: $ 4,166.71语法对比总结
| 操作 | Python | Stata | R |
|---|---|---|---|
| 变量赋值 | x = 10 | gen x = 10 | x <- 10 |
| 显示输出 | print(x) | display x | cat(x) |
| 字符串格式化 | f"{x}" | "" + string(x) | paste(x) |
| 注释 | # 注释 | * 注释 | # 注释 |
核心特色
- 社科视角:所有示例围绕问卷调查、收入分析、回归建模等真实研究场景
- 对比学习:Python vs Stata vs R 对照,帮助 Stata/R 用户快速过渡
- 实战导向:每个模块包含 5-10 个渐进式编程练习,附完整参考答案
- 系统全面:从基础语法到数据科学库,涵盖研究所需的所有技能
- 质量保证:所有代码经过测试,文档采用 UTF-8 编码保证中文显示
课程统计
| 指标 | 数量 |
|---|---|
| 模块总数 | 11 个 |
| 文章总数 | 40+ 篇 |
| 编程练习 | 60+ 个 |
| 代码示例 | 500+ 个 |
| 总字数 | 15+ 万字 |
开始学习
课程大纲
基础篇(Module 1-4)
Module 1: Python 编程入门
3 篇文章 | 学习时长:2-3 小时
- 为什么学 Python?与 Stata/R 的对比
- Python 语言特点和应用领域
- 第一个 Python 程序
学习目标:理解 Python 的优势,建立学习信心
Module 2: Python 开发环境
3 篇文章 | 学习时长:3-4 小时
- Jupyter Notebook:最适合数据分析的环境
- VS Code:专业开发者的选择
- 在线环境和 AI 辅助工具
学习目标:搭建开发环境,学会使用 AI 工具
Module 3: 基础语法
5 篇文章 | 10 个编程练习 | 学习时长:8-10 小时
- 变量与数据类型
- 运算符(算术、比较、逻辑)
- 条件判断(if-elif-else)
- 循环结构(for/while)
- 小结和复习(1,564 行,包含 10 个完整练习)
学习目标:掌握编程基础,能编写简单的数据处理脚本
核心练习:
- 税收计算器(累进税率)
- 数据清洗(异常值处理)
- 收入分组统计
- 基尼系数计算
Module 4: 数据结构
5 篇文章 | 10 个编程练习 | 学习时长:8-10 小时
- 列表(List):有序可变序列
- 元组(Tuple):有序不可变序列
- 字典(Dict):键值对映射
- 集合(Set):无序唯一元素集
- 小结和复习(1,931 行,包含 10 个完整练习)
学习目标:熟练使用 Python 数据结构,处理复杂数据
核心练习:
- 问卷数据去重
- 词频统计
- 调查数据合并
- 社交网络分析
- 面板数据处理
进阶篇(Module 5-8)
Module 5: 函数与模块
5 篇文章 | 7 个编程练习 | 学习时长:8-10 小时
- 函数基础:定义、参数、返回值
- 函数参数详解:位置、默认、可变、关键字参数
- Lambda 函数与函数式编程
- 模块与包管理
- 小结和复习(706 行,包含 7 个完整练习)
学习目标:编写可复用的代码,组织大型项目
核心练习:
- 累进税计算器
- 数据筛选器
- 问卷验证系统
- 数据转换流水线
- 递归函数(组织层级)
Module 6: 面向对象编程基础
4 篇文章 | 4 个编程练习 | 学习时长:6-8 小时
- OOP 基础概念
- 类与对象
- OOP 在数据科学中的应用(Pandas、Scikit-learn)
- 小结和复习(1,072 行,包含 4 个完整练习)
学习目标:理解 OOP 思想,能使用数据科学库
核心练习:
- 学生成绩管理系统
- 问卷数据容器
- 数据分析流水线
- 简单线性回归类
Module 7: 文件操作
5 篇文章 | 5 个编程练习 | 学习时长:8-10 小时
- 文本文件读写
- CSV 与 Excel 处理
- Stata (.dta) 文件读写
- JSON 数据处理
- 小结和复习(1,001 行,包含 5 个完整练习)
学习目标:熟练处理各种数据文件格式
核心练习:
- 日志文件分析
- CSV 数据清洗
- 多格式数据转换器
- 问卷数据管理系统
- 批量文件处理
Module 8: 异常处理与调试
4 篇文章 | 5 个编程练习 | 学习时长:6-8 小时
- 常见错误类型
- try-except 异常处理
- 调试技巧(print、logging、pdb)
- 小结和复习(958 行,包含 5 个完整练习)
学习目标:编写健壮的代码,快速定位和解决问题
核心练习:
- 安全的数据读取函数
- 批量数据清洗
- 带重试的 API 请求
- 自定义异常类
- 综合调试案例
数据科学篇(Module 9-11)
Module 9: 数据科学核心库
7 篇文章 | 4 个编程练习 | 学习时长:15-20 小时
- NumPy 基础:数组操作与向量化
- Pandas 入门:Series 和 DataFrame
- Pandas 进阶:分组、合并、透视
- Matplotlib 与 Seaborn:数据可视化
- 描述性统计分析
- 网络爬虫基础(requests)
- 小结和复习(797 行,包含 4 个核心练习)
学习目标:掌握数据分析的核心工具链
核心练习:
- NumPy 数组统计分析
- Pandas 数据清洗
- 分组聚合与可视化
- 时间序列分析
️ 重要提示:这是最核心的模块,建议投入充足时间学习
Module 10: 机器学习与 LLM API
4 篇文章 | 学习时长:8-10 小时
- Scikit-learn 基础
- 机器学习工作流
- 深度学习入门
- LLM API 调用(OpenAI、Claude、DeepSeek)
学习目标:了解机器学习流程,能调用 LLM API
Module 11: 最佳实践
4 篇文章 | 学习时长:6-8 小时
- 代码规范(PEP 8)
- 调试与性能优化
- Git 版本控制
- 项目组织与文档
学习目标:编写专业、可维护的代码
️ 学习路径
完整学习路径(8-12 周)
Week 1-2 │ Module 1-2 │ 环境搭建 + 基础概念
Week 3-4 │ Module 3-4 │ 语法 + 数据结构
Week 5-6 │ Module 5-6 │ 函数 + OOP
Week 7-8 │ Module 7-8 │ 文件 + 异常处理
Week 9-11 │ Module 9 │ NumPy + Pandas + 可视化
Week 12 │ Module 10-11│ 机器学习 + 最佳实践快速通道(4-6 周)
- Module 3: 基础语法
- Module 4: 数据结构
- Module 5: 函数与模块
- Module 7: 文件操作
- Module 9: 数据科学库
学习建议
循序渐进:
- Module 1-4 是基础,必须扎实掌握
- Module 9 最重要,是数据分析的核心
- 不要跳跃式学习
实践为王:
- 每个练习都要自己动手写
- 先不看答案,尝试独立完成
- 对比参考答案,理解不同实现方式
善用复习文档:
- 每个模块的"小结和复习.md"包含完整知识点
- 60+ 个编程练习覆盖所有重点
- 所有练习都有详细参考答案
对比学习(Stata/R 用户):
- 每个模块都有 Python vs Stata vs R 对比
- 帮助快速建立语法映射关系
活用 AI 工具:
- 遇到问题先尝试自己解决
- 然后向 ChatGPT/Claude 求助
- 学习如何高效使用 AI 辅助编程
适合人群
完全适合
- 社会科学研究者:经济学、社会学、政治学等专业
- Stata/R 用户:想学习 Python 进行数据分析
- 零基础学习者:完全没有编程经验
- 数据分析师:需要使用 Python 处理数据
- 研究生/博士生:需要用 Python 做实证研究
️ 可能不适合
- 已有 Python 基础:建议直接学习进阶课程
- 软件工程方向:本课程侧重数据分析而非软件开发
- 急需速成:建议至少投入 2-6 周时间学习
学习成果
完成本课程后,你将能够:
编程基础
- 熟练使用 Python 基础语法和数据结构
- 编写函数、类和模块,组织复杂项目
- 处理异常和调试代码
数据分析
- 使用 Pandas 进行数据清洗、转换、聚合
- 使用 NumPy 进行数值计算和统计分析
- 使用 Matplotlib/Seaborn 创建专业图表
- 读写 CSV、Excel、Stata、JSON 等格式
研究应用
- 处理问卷调查数据
- 计算描述性统计和相关分析
- 实现数据可视化
- 为机器学习和计量经济学打下基础
工作能力
- 自动化重复性数据处理任务
- 编写可复用的分析脚本
- 使用 AI 工具提升编程效率
- 阅读和理解他人的 Python 代码
课程对比
本课程 vs 其他 Python 教程
| 特点 | 本课程 | 通用 Python 教程 | Stata 教程 |
|---|---|---|---|
| 目标人群 | 社科研究者 | 通用开发者 | 社科研究者 |
| 示例场景 | 问卷、收入分析 | Web、游戏 | 回归分析 |
| Stata/R 对比 | 每章都有 | 无 | N/A |
| 数据分析 | ⭐⭐⭐ 重点 | ⭐ 基础 | ⭐⭐⭐ 核心 |
| 编程练习 | 60+ 个 | 少量 | 中等 |
| 完整答案 | 所有练习 | ️ 部分 | ️ 部分 |
️ 技术栈
核心工具
- Python 3.11+:最新稳定版本
- Jupyter Notebook:交互式开发环境
- VS Code:代码编辑器
核心库
- NumPy:数值计算
- Pandas:数据分析
- Matplotlib:基础可视化
- Seaborn:高级可视化
- Requests:网络请求
推荐扩展
- Scikit-learn:机器学习(Module 10)
- Statsmodels:统计建模
- Plotly:交互式可视化
使用建议
对于教师
课程设计:
- 可作为一学期(16 周)的 Python 编程课程
- 每周 1 个模块,留出时间练习和复习
- Module 9 可以用 2-3 周深入讲解
作业设计:
- 每个模块的"小结和复习"包含大量练习
- 可直接作为课后作业或考试题
- 参考答案可用于自动评分系统
考核方式:
- 平时作业:40%(编程练习)
- 期中项目:20%(综合应用 Module 1-6)
- 期末项目:40%(完整数据分析流程)
对于学生
时间规划:
- 每天学习 1-2 小时,坚持 8-12 周
- 周末集中练习和复习
- 完成所有编程练习
学习方法:
- 先看文档理解概念
- 运行所有代码示例
- 独立完成练习
- 对比参考答案
常见问题:
- 遇到错误先自己调试
- 善用搜索引擎和 AI 工具
- 加入学习社群交流
对于研究者
快速上手:
- 重点学习 Module 3, 4, 5, 7, 9
- 跳过 Module 2(环境配置)和 Module 6(OOP)
- 4-6 周即可掌握核心技能
实战应用:
- 用自己的研究数据练习
- 重现 Stata/R 中的分析
- 逐步迁移到 Python
贡献指南
欢迎贡献改进建议、错误修正和新增内容!
贡献方式
- Fork 本仓库
- 创建特性分支
- 提交 Pull Request
内容规范
- UTF-8 编码
- Markdown 格式
- 中文文档
- 代码注释清晰
- 所有示例可运行
版权声明
CC BY-NC-SA 4.0
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
- 允许:学习、分享、改编
- 禁止:商业使用
- ️ 要求:署名、相同协议分享
相关资源
官方文档
推荐阅读
- 《Python for Data Analysis》(Wes McKinney)
- 《Automate the Boring Stuff with Python》
- 《Fluent Python》(进阶)
在线资源
联系方式
致谢
感谢所有为 Python 社区和开源教育做出贡献的开发者和教育工作者。
特别感谢:
- Python Software Foundation
- NumPy、Pandas、Matplotlib 开发团队
- Jupyter 项目
- 所有提供反馈和建议的学习者
开始你的 Python 学习之旅!
Last Updated: 2025-10-28