Skip to content

Repository files navigation

EasyPy - 洛阳中考 Python 学习平台

专为洛阳中考信息技术考试设计的 Python 学习 Web 应用。提供课程学习、知识点查阅、模拟测试等功能,通过 Capacitor 可打包为 Android APK。

功能概览

功能 说明
课程学习 5 课(零~四)× 3 节,每节含知识点分页讲解、选择题测验、代码任务题
课后 OJ 每课 3 道 OJ 编程题,内置 Python 模拟运行时自动判题
知识点 学完课程解锁对应知识点卡片,支持搜索查阅
模拟测试 3 套综合测试卷(选择 + 填空 + OJ),全部课程完成后解锁
自由运行 三套测试全部及格后解锁,提供自由 Python 代码编辑运行环境
开发者面板 关于页点击制作者名 5 次 → 输入密钥 EASYPY_DEV_2026 激活

技术栈

  • 前端框架: React 19 + TypeScript
  • 构建工具: Vite 6
  • UI 组件库: MUI (Material UI)
  • 状态管理: Zustand(localStorage 持久化)
  • 代码编辑器: CodeMirror 6 (@uiw/react-codemirror)
  • 路由: react-router-dom v7
  • 移动端打包: Capacitor

快速开始

# 安装依赖
npm install

# 启动开发服务器
npx vite --port 5173

# 构建生产版本
npx vite build

项目结构

src/
├── types/index.ts          # 类型定义
├── store/useStore.ts       # Zustand 全局状态 + localStorage
├── utils/pythonRuntime.ts  # Python 模拟运行时
├── data/                   # 课程 / 知识点 / 测试数据
│   ├── course0-4.ts        # 5 课完整内容
│   ├── knowledge.ts        # 17 个知识点
│   ├── tests.ts            # 3 套测试卷
│   └── index.ts            # 数据聚合
├── pages/                  # 页面组件
│   ├── MainPage.tsx        # 主界面(课程 / 知识点 / 测试 / 自由运行)
│   ├── CourseListPage.tsx  # 课程列表(按顺序解锁)
│   ├── CoursePage.tsx      # 课程学习(知识点→选择题→任务题→OJ)
│   ├── KnowledgePage.tsx   # 知识点查阅
│   ├── TestListPage.tsx    # 测试列表
│   ├── TestPage.tsx        # 测试作答 + 得分分析
│   ├── FreeRunPage.tsx     # 自由运行环境
│   ├── AboutPage.tsx       # 关于 + 彩蛋入口
│   └── DevPanelPage.tsx    # 开发者面板
├── components/
│   ├── KnowledgeRenderer.tsx  # 知识点内容渲染
│   └── CodeEditor.tsx         # CodeMirror 封装
├── theme.ts               # MUI 主题
├── App.tsx                 # 路由配置
└── main.tsx               # 入口

课程内容

课程 内容 节数 OJ 题
第零课 计算机基础与 Python 入门 3 3
第一课 输入输出与顺序结构 3 3
第二课 分支结构与逻辑判断 3 3
第三课 循环结构与累加计数 3 3
第四课 综合应用与算法初步 3 3

Python 运行时支持

内置的 Python 模拟运行时支持中考要求的全部语法:

  • 输出: print()
  • 输入: input()
  • 变量: 赋值、复合赋值(+= -= *= /=
  • 类型: int() float() str() bool() len() round()
  • 运算: + - * / // % **、字符串重复
  • 比较: == != > < >= <=
  • 逻辑: and or not
  • 分支: if elif else
  • 循环: for in range() while
  • 字符串: len()、索引 s[0].isdigit() .isupper() .islower() .split()、遍历

打包 APK

# 1. 安装 Capacitor
npm install @capacitor/core @capacitor/cli

# 2. 初始化
npx cap init EasyPy com.easypy.app

# 3. 构建 Web 应用
npx vite build

# 4. 添加 Android 平台
npx cap add android

# 5. 同步
npx cap sync

# 6. 打开 Android Studio 打包 APK
npx cap open android

在 Android Studio 中打开后:

  1. 等待 Gradle 同步完成
  2. 点击 Build → Build Bundle(s) / APK(s) → Build APK(s)
  3. 生成的 APK 在 android/app/build/outputs/apk/debug/

或者直接用命令行打包

# 构建 Web 并同步
npx vite build
npx cap sync android

# 设置环境变量并编译(Windows PowerShell)
$env:JAVA_HOME = "C:\Program Files\Microsoft\jdk-21.0.7.6-hotspot"
$env:ANDROID_HOME = "$env:LOCALAPPDATA\Android\Sdk"
cd android
.\gradlew assembleDebug

# APK 路径: android/app/build/outputs/apk/debug/app-debug.apk

注意:打包 APK 需要安装 Android Studio(含 Android SDK)和 JDK 17+。

制作者

ColaSensei - Python & Web 开发者 / 编程教育爱好者

许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages