Skip to content

About

面向初级工程师的 100 道 Python 3.12+ 分模块练习,支持浏览器判题、综合项目与本地进度。

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

Python 100:从零到项目

面向初级工程师的 Python 3.12+ 练习课程。通过 10 个章节、100 道渐进练习,从基础语法学到多文件任务清单项目。

在浏览器里读题、写代码、查看检查结果,逐步练习初级开发中的业务实现、数据处理、测试与调试。

课程目录 · 贡献指南 · 开发与部署 · 反馈问题

开始学习

打开在线练习即可在桌面浏览器做题,无需安装 Python。也可以从课程目录阅读全部题目。

你可以在这里做什么

  • 循序渐进地学:每题都有知识铺垫、明确约定、示例和两层提示。
  • 在线编写 Python:语法高亮、基础代码补全、自动缩进和多文件编辑。
  • 获得具体反馈:运行示例、提交完整检查,查看逐项结果和错误位置。
  • 保留学习进度:自动保存当前浏览器中的代码,支持导入导出和重置。
  • 完成一个小项目:逐步实现任务清单的校验、存储、查询和接口逻辑。

首版面向桌面浏览器,支持深浅色主题。学习记录保存在当前浏览器中;清理数据或更换设备前,请先导出备份。

学习路线

题目按知识依赖排列,建议从第 001 题开始。

题号 章节 学习目标
001–012 基础语法与数据类型 读懂数值、字符串和布尔值,用表达式返回计算结果。
013–024 条件判断与循环 把业务规则写成分支,使用循环处理重复任务。
025–038 常用数据结构 用列表、字典和集合组织、查询和汇总数据。
039–050 函数与代码组织 设计函数契约、复用逻辑,并拆分简单模块。
051–060 文件与数据处理 在练习工作区处理文本、JSON 和 CSV。
061–068 异常处理与调试 识别错误边界、阅读失败信息并修复业务缺陷。
069–076 类与对象 封装独立状态,通过组合与基本继承复用行为。
077–084 数据库基础 在内存 SQLite 中练习 SQL、约束和事务。
085–092 HTTP 与接口逻辑 通过模拟请求响应练习接口业务,不启动真实服务器。
093–100 综合项目:任务清单 逐步实现任务清单的数据校验、存储、查询和接口。

文件题使用独立练习工作区,数据库题使用内存 SQLite。HTTP 题通过模拟请求响应练习业务逻辑。后期项目每题都有独立起始文件,可以单独学习和检查。

每道题怎么练

  1. 阅读「先学一点」和「任务与约定」,弄清输入和预期结果。
  2. 在起始代码中完成实现,先运行示例,再提交完整检查。
  3. 根据失败反馈修改代码;遇到困难时逐层展开提示。
  4. 通过后继续下一题,尝试说明自己的解法为什么成立。

运行示例只检查部分行为;提交全部通过后才记录完成。修改已通过的代码后,当前版本需要重新检查。

每题的 solution/ 提供参考实现。测试按行为验收,允许不同解法。完成课程表示通过了已覆盖的要求,不等同于就业或职业资格保证。

实现方式

前端使用 Vite + React + TypeScript,开启 React Compiler。组件以 Ant Design 为主,配合少量 UnoCSS;编辑器使用 CodeMirror。

Python 通过 Pyodide 在 Web Worker 中运行,复用仓库的判题内核。全部题型支持浏览器检查,可用 GitHub Pages 静态托管,无需判题后端。运行支持停止、超时处理和失败重试。

100 道参考实现已通过浏览器内的 329 项检查,100 份起始代码均未被误判通过。实时语法错误标记与中文错误解释属于后续计划。

参与开发

以下命令面向维护者。需要 Node.js 24、pnpm 11.17 和 Python 3.12+。

# 安装依赖并启动前端
pnpm --dir web install
pnpm --dir web dev
# 校验题库结构与参考实现
python -m tools.course validate
python -m tools.course check

# 运行判题工具的回归测试
python -m pip install -r requirements.txt
python -m pytest -q

完整的前端检查、浏览器测试和部署步骤见前端说明。CI 检查 PR 与 main 推送;Pages 使用手动发布工作流。

目录 内容
curriculum/ 课程目录、题目、起始代码、参考实现与测试
tools/ 题库校验、导出和 Python 判题内核
web/ 在线练习前端与浏览器验收
docs/ 产品决策、贡献规范和后续计划
legacy/ 旧版题库归档,不参与当前构建和默认检查

贡献与反馈

欢迎改进题目说明、补充行为测试,或报告编辑器和判题问题。开始前请阅读题库作者说明。

提交 Issue 时,请注明课程版本、题号、相关代码与实际结果。当前课程版本为 python-100-v2;旧版为 legacy-v1,同号题的内容可能不同。

许可证

本项目采用 MIT License。

About

面向初级工程师的 100 道 Python 3.12+ 分模块练习,支持浏览器判题、综合项目与本地进度。

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages