Skip to content

Python 基础教程

专为社会科学研究者设计的 Python 编程完整教程

PythonLicenseStatusArticles


课程简介

这是一套完整的 Python 编程教程,专为社会科学研究者(经济学、社会学、政治学等)设计。课程从零基础开始,通过 11 个模块、40+ 篇文章,系统讲解 Python 编程的核心概念和数据分析技能。


快速测试:Python vs Stata vs R

下面是三种语言的简单对比代码,可用于测试在线运行环境:

Python 代码

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.71

Stata 代码

stata
* 定义变量
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.708

R 代码

r
# 定义变量
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

语法对比总结

操作PythonStataR
变量赋值x = 10gen x = 10x <- 10
显示输出print(x)display xcat(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: 数据科学库

学习建议

  1. 循序渐进

    • Module 1-4 是基础,必须扎实掌握
    • Module 9 最重要,是数据分析的核心
    • 不要跳跃式学习
  2. 实践为王

    • 每个练习都要自己动手写
    • 先不看答案,尝试独立完成
    • 对比参考答案,理解不同实现方式
  3. 善用复习文档

    • 每个模块的"小结和复习.md"包含完整知识点
    • 60+ 个编程练习覆盖所有重点
    • 所有练习都有详细参考答案
  4. 对比学习(Stata/R 用户):

    • 每个模块都有 Python vs Stata vs R 对比
    • 帮助快速建立语法映射关系
  5. 活用 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:交互式可视化

使用建议

对于教师

  1. 课程设计

    • 可作为一学期(16 周)的 Python 编程课程
    • 每周 1 个模块,留出时间练习和复习
    • Module 9 可以用 2-3 周深入讲解
  2. 作业设计

    • 每个模块的"小结和复习"包含大量练习
    • 可直接作为课后作业或考试题
    • 参考答案可用于自动评分系统
  3. 考核方式

    • 平时作业:40%(编程练习)
    • 期中项目:20%(综合应用 Module 1-6)
    • 期末项目:40%(完整数据分析流程)

对于学生

  1. 时间规划

    • 每天学习 1-2 小时,坚持 8-12 周
    • 周末集中练习和复习
    • 完成所有编程练习
  2. 学习方法

    • 先看文档理解概念
    • 运行所有代码示例
    • 独立完成练习
    • 对比参考答案
  3. 常见问题

    • 遇到错误先自己调试
    • 善用搜索引擎和 AI 工具
    • 加入学习社群交流

对于研究者

  1. 快速上手

    • 重点学习 Module 3, 4, 5, 7, 9
    • 跳过 Module 2(环境配置)和 Module 6(OOP)
    • 4-6 周即可掌握核心技能
  2. 实战应用

    • 用自己的研究数据练习
    • 重现 Stata/R 中的分析
    • 逐步迁移到 Python

贡献指南

欢迎贡献改进建议、错误修正和新增内容!

贡献方式

  1. Fork 本仓库
  2. 创建特性分支
  3. 提交 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

基于 MIT 许可证发布。内容版权归作者所有。