Skip to content

wm2242/python_tk_work

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 作业题库展示平台

一个基于 Cloudflare Workers 部署的轻量级 Web 应用,用于在线展示 Python 编程作业的题库与参考答案.

项目简介

本项目是一个 Python 编程作业题库的在线展示平台,共收录 44 道 Python 练习题(编号 1-44,其中第 28 题我看不懂题目),涵盖基础语法,经典算法,OS 模块文件操作,tkinter GUI 以及 sqlite3 数据库等知识点.

网站采用浏览器端 Python 运行环境(Pyodide),用户无需安装任何软件,即可在线查看题目,编辑代码并直接运行查看输出结果.部分涉及 tkinter 图形界面的题目在浏览器中无法完整运行,会提示用户本地执行.

项目 GitHub 仓库: https://github.com/wm2242/python_tk_work

功能特点

  • 题目列表浏览: 左侧边栏列出全部题目(1-44,缺第 28 题),点击即可切换
  • 题目详情展示: 显示题目描述与参考代码(代码可在线编辑)
  • 在线代码运行: 基于 Pyodide 在浏览器中直接执行 Python 代码,无需后端服务器
  • 标准输入支持: 支持通过界面为 input() 提供输入数据
  • 虚拟文件系统: 可浏览所有题目的 Python 源文件及数据文件的目录结构(橙色为数据文件,绿色为 Python 源文件)
  • 文件上传: 支持上传 Python 文件以补充项目运行所需的文件(注意: 此功能仅用于补充项目运行文件,不能用于扩展题库)

技术栈

组件 技术/服务
前端 HTML + CSS + JavaScript
Python 运行时 Pyodide (WebAssembly 版 CPython)
域名服务 DNSHE 免费域名管理平台
服务器部署 Cloudflare Workers
CDN 加速与安全 Cloudflare

部署架构

域名解析 (DNSHE)

本项目的域名通过 DNSHE 免费域名管理平台申请并管理. DNSHE 提供了免费的二级域名及 DNS 解析服务,用户可在该平台完成域名的注册与解析配置.

服务部署 (Cloudflare Workers)

项目实际运行于 Cloudflare Workers 无服务器平台上. Cloudflare Workers 提供了轻量级的 JavaScript/WebAssembly 运行环境,使本项目可以低成本,高可用地部署在全球边缘节点上.

部署流程简述:

  1. 在 Cloudflare Workers 中创建新的 Worker
  2. 将前端静态资源(HTML, CSS, JavaScript, Pyodide 依赖等)部署至 Worker
  3. 将域名通过 DNSHE 解析至 Cloudflare Workers 的默认域名或自定义域名

项目结构

pytk/                              # 项目根目录
├── index.html                     # 主页面(包含完整前端逻辑)
├── pyodide/                       # Pyodide Python 运行时(约12MB)
│   └── pyodide.js                 # Pyodide 核心库
├── 1-10/                          # 第1-10题: 基础编程题
│   ├── 1.py
│   ├── 2.py
│   ├── 3.py
│   ├── 4.py
│   ├── 5.py
│   ├── 6.py
│   ├── 7.py
│   ├── 8.py
│   ├── 9.py
│   └── 10.py
├── 11-22/                         # 第11-22题: 经典算法题
│   ├── 11.py
│   ├── 12.py
│   ├── 13.py
│   ├── 14.py
│   ├── 15.py
│   ├── 16.py
│   ├── 17.py
│   ├── 18.py
│   ├── 19.py
│   ├── 20.py
│   ├── 21.py
│   └── 22.py
├── 23-33/                         # 第23-33题: OS模块与文件操作
│   ├── 23.py
│   ├── 24.py
│   ├── 25.py
│   ├── 26.py
│   ├── 27.py
│   ├── 29.py                      # 第28题缺失,跳至29
│   ├── 30.py
│   ├── 31.py
│   ├── 32.py
│   ├── 33.py
│   └── students.txt               # 数据文件(第23题)
├── 34-44/                         # 第34-44题: 综合题(含tkinter和sqlite3)
│   ├── 34.py
│   ├── 35.py
│   ├── 36.py
│   ├── 37.py
│   ├── 38.py
│   ├── 39.py
│   ├── 40/                        # 第40题: 文件合并(含数据文件)
│   │   ├── 40.py
│   │   ├── A.txt                  # 数据文件
│   │   └── B.txt                  # 数据文件
│   ├── 41.py                      # tkinter GUI (需本地运行)
│   ├── 42.py                      # tkinter GUI (需本地运行)
│   ├── 43.py                      # tkinter GUI (需本地运行)
│   └── 44/                        # 第44题: 数据库CRUD操作(tkinter GUI)
│       ├── createdata.py          # 辅助模块
│       └── dml.py                 # tkinter GUI (需本地运行)

说明:

  • 第 28 题我有意未编写,因为我看不懂题目要求,因此题库实际为 44 题(1-27, 29-44).
  • 40/ 和 44/ 为包含多个文件的子目录,浏览器虚拟文件系统会显示其完整结构.
  • 带有 tkinter GUI 标注的题目在浏览器中无法正常显示图形界面,会提示用户下载后本地运行.

使用说明

  1. 访问网站,左侧边栏列出全部题目
  2. 点击任意题目,右侧区域显示题目描述与参考代码
  3. 点击"运行"按钮,代码将在浏览器中执行并显示输出结果
  4. 若程序需要 input() 输入,可在"标准输入"区域预先录入数据
  5. 点击"查看所有文件/文件夹"可浏览虚拟文件系统
  6. 如需上传补充文件(例如额外的数据文件或辅助模块),可使用页面上传功能

注意事项

  • 使用 tkinter 模块的 Python 文件会显示警告,且不提供在线运行功能,建议下载后本地执行.
  • 包含多个 Python 文件的题目(如第 40, 44 题)会在虚拟文件系统中展示所有相关文件.
  • 文件上传功能仅用于补充项目运行文件(如数据文件,辅助模块),不能用于扩展题库.
  • 所有代码在浏览器中执行,不会上传至任何服务器,请放心使用.

致谢

感谢大好人 Cloudflare 为本站提供 CDN 加速与安全防护支持以及服务器支持.
感谢活佛 DNSHE 提供免费二级域名支持.


在线访问: https://gjn.ljsyggfxyj.cc.cd

About

python期末考试的题库和答案,可以在网页演示

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors