一个可判分、可验证的编程学习系统 —— 为"有 C/Java 基础、想在 7 天内拿下 Python + 数据库"的 Windows + VS Code 用户定制, 并附带 408(数据结构 / 组成原理 / 操作系统 / 计算机网络) 与 电子信息(电路 / 模电 / 数电 / 信号与系统) 两条长期轨道。
不只是资料合集:每道题都有自动判分器、每个数值答案都由程序独立复算、附带一个 macOS 风格的桌面学习软件。
| 模块 | 内容 | 规模(实测) |
|---|---|---|
| 7 天 Python 主线 | 逐日讲义 + 习题 + 参考解答 + 独立测试 | 105 道习题 / 554 个测试用例,100% 通过 |
| 数据库专题 | SQLite 深入 + MySQL 对照 + SQL 速查 + 可跑练习库 | 7 张表 / 96 条选课 / 6 个索引 |
| 通用题库 | 8 大主题 × 4 难度档,含解析 | 120 题 |
| 408 四门 | 数据结构 / 组成原理 / 操作系统 / 计算机网络 | 210 题 + 7 个可编译 C 实现(498 项断言) |
| 电子信息 | 电路模电 / 数电 / 信号与系统 / 实验工具链 | 含 Python DSP 实验(FIR 滤波器实测 −66.2 dB) |
| 模拟卷 | Python / SQL / 408 数据结构 / 408 混合 | 4 套(含评分标准) |
| 桌面软件 | macOS 风格 GUI:讲义 / 练习 / 进度 / 题库 / 工具 / 环境 | 打包为免安装 exe(零弹窗) |
验证优先:所有计算题的答案(浮点位模式、Banker 安全序列、SCAN/LOOK 寻道、快排划分、散列 ASL、哈夫曼 WPL、Dijkstra 反例…)
都由 tools/_verify_*.py 用程序重新算过 —— 累计 1000+ 处。写作过程中因此抓出并修正了 40 多处真实错误。
# 从 Releases 下载 zip 解压后,双击:
LLMWikiStudy.exe- 无需安装 Python(exe 内置运行时)、无控制台黑窗、界面内零弹窗
- 界面:Windows 原生标题栏(右上角 最小化/最大化/关闭)+ 自绘侧边栏与圆角卡片
- 页面切换有平滑动画;标题栏 ◐ 一键深色/浅色(只影响本窗口,不改系统设置)
- 自带判分:写代码 →
Ctrl+Enter→ 逐条报出失败原因
自己打包(改了内容之后):
powershell -ExecutionPolicy Bypass -File build_app.ps1 -Zip脚本会自动做打包前自检 → 编译 → 打包后自检 → 界面渲染检查,任一步失败即中止。
# 1) 判分器自检(应输出"自检通过")
python tools/grader.py --selfcheck
# 2) 看题库
python tools/grader.py --list
# 3) 做第 1 题,交互式判分
python tools/grader.py -i 1
# 4) 判某一天的题
python tools/grader.py --day 1
# 5) 全仓库总验收(语法 / 链接 / 契约 / 105 题全量判分 / GUI 冒烟 / 环境)
python tools/_acceptance.pyVS Code 里:Ctrl+Shift+P → Run Task → 选 3. 判分: 今天(第N天)的题(共 18 个预置任务)。
.
├── README.md # 本文件(项目介绍)
├── APP_GUIDE.md # 桌面软件使用说明 + 打包方法(含逐页操作指南)
├── DAY_PLAN.md # 7 天逐日时间表(每小时做什么)
├── VSCODE_SETUP.md # VS Code 配置、调试、任务、中文编码
├── PYTHON_VS_C_JAVA.md # 给有 C/Java 基础的人:Python 差异速查
├── python-7day/ # 主线:day1_basics … day7_capstone
│ └── dayN_*/{README.md, lesson/, ex/, solutions/, tests/}
├── database/ # SQLite 深入 + MySQL 对照 + 速查 + 练习库
├── practice-bank/ # 120 题题库 + 4 套模拟卷 + 刷题计划 + 进度表
├── 408/ # 数据结构 / 组成原理 / 操作系统 / 网络(+ C 实现)
├── electronics/ # 电路模电 / 数电 / 信号与系统 / 实验工具链
├── roadmap/ # 30 / 60 / 90 天路线与学习法
├── cheatsheets/ # Python / SQL / Git+VS Code 一页速查
├── app/ # 桌面应用(tkinter,macOS 风格外壳为自绘)
├── tools/ # 判分器、总验收、12 个数值验证脚本
└── build_app.spec / .ps1 # PyInstaller 打包配置与脚本
习题是普通 .py 文件,顶部有元信息块,函数体是 TODO 占位:
# ---
# id: 1
# title: 温度换算 —— 算术运算与类型
# day: 1
# topic: 运算符与类型
# difficulty: 入门
# tests: 5
# time_estimate: 10min
# hint: Python 3 的 / 是真除法; 写成 9 // 5 会得到 1, 结果就错了
# ---
def exercise_convert_temperature(celsius):
raise NotImplementedError("TODO: 实现它")
def test_01_freezing_point():
assert exercise_convert_temperature(0) == (32.0, 273.15)判分器(tools/grader.py)的特点:
- 子进程隔离:你的代码死循环 /
sys.exit()/ 污染全局都不会影响判分器 - 进程树超时终止:
CREATE_NEW_PROCESS_GROUP+taskkill /F /T,5 秒兜底 - 默认禁网:自动注入
sitecustomize.py拦截 socket - 只允许标准库:避免"装个包才能做题"
--json/--out:供 GUI 与其它程序消费结构化结果
| 文件 | 作用 |
|---|---|
main.py |
入口:无参数开界面;--verify / --grade / --grader / --shot 等走命令行 |
paths.py |
路径定位(源码运行 / 打包运行都能找到知识库)+ 设置读写 |
kb.py |
知识库数据层:扫描 105 道习题、120 道题库、文档;可单独自检 |
mdrender.py / mdview.py |
轻量 Markdown 解析器 + 主题感知阅读器 + 代码编辑器 |
practice.py |
练习执行器(子进程判分 + SQL 练习台 + C 编译运行) |
progress.py |
进度存储(原子写 JSON,损坏容错)+ Markdown 报告导出 |
theme.py / canvasui.py / anim.py |
设计系统 / 自绘圆角控件 / 动画内核(Tween + Animator) |
ui2.py |
macOS 风格界面(当前默认);ui.py 为回退版本 |
界面外观来源:控件主题用 ttkbootstrap(30 套主题,可换肤); 外壳(侧边栏、圆角卡片、动画)自绘,无第三方 GUI 框架依赖。参考了 Sun-Valley-ttk-theme 与 AnimatedWidgetsPack 的思路,但未直接引入(前者只换配色,后者不支持无边框窗口)。
主题只作用于本程序窗口:不写注册表、不改系统主题 / 壁纸 / DPI / 字体。
| 项目 | 版本 | 必需 |
|---|---|---|
| Windows 10 / 11(64 位) | — | 是 |
| Python | 3.11+(实测 3.13.14) | 源码运行必需;用 exe 则不需要 |
| SQLite | 3.35+(Python 内置,实测 3.50.4) | 是 |
| gcc | 16.1.0(WinLibs UCRT) | 仅 408 的 C 代码需要 |
| VS Code | 1.138+ | 推荐 |
| numpy / scipy / matplotlib | 可选 | 仅 Day7 扩展与 DSP 实验 |
winget install --id BrechtSanders.WinLibs.POSIX.UCRT -e # gcc + gdb
pip install numpy scipy matplotlib # 可选python tools/_acceptance.py # 全仓库总验收会检查:文档与 Python 文件数量、382 个 Python 文件全部可编译、109 个 Markdown 内部链接、 105 道习题契约完备、参考解答全量判分 554/554、仓库无运行产物残留、 应用与 GUI 冒烟(39 项,含最小化/还原/最大化/缩放/换页/换肤)、环境断言。
结果:0 失败 0 警告。
MIT —— 覆盖本仓库的全部代码(app/、tools/、build_app.*、408/data-structure/code/ 等):
可自由使用、修改、分发、商用,保留版权声明即可。
各讲义与题目文本(python-7day/、database/、408/、electronics/、practice-bank/、roadmap/)
可自由用于个人学习与教学,转载时注明来源即可。
引用到的第三方项目(ttkbootstrap 等)遵循其各自许可(MIT)。