一个自制的比较low的刷题软件
一个自制的比较low的刷题软件
一、背景
工作中往往涉及一些考试,比如阿里云ACP认证,华为GAUSS认证、软考等,应对这些考试的时候,我们往往是先看书后刷题(当然也有直接刷题的大神,毕竟考试,懂的都懂)。有的题库是可以在部分免费刷题软件找到的,比如233网校就有证券从业的题库,但有些题库则很难找到免费的刷题渠道。某宝一查,发现好多卖线下题库的,10元到50元不等。笔者本着能不花钱就不花钱的原则(ps:绝不是因为出不起10块钱),所以琢磨能不能自己搞一个刷题软件,毕竟好些题网上也有啊。
有同学说了也有一些现成的刷题软件的,我试了几款,要不就是有题目数量的限制,要不就是需要先查看广告或者有广告弹窗,一不小心就点上了。
二、一般性的功能分析
1、每次能给出题干和选项,选择后判断是否正确,并给出解析。
2、将错题摘录下来,供错题强化和复习
三、实现思路
1、题目整理
将题目整理到excel,按照章节或者自定义分类,每个分类可以有多套题目。每类题目整理在一个excel中,每一类的每套题分布在这个excel的不同sheet。
excel表头如下:
| 表头 | 说明 | 举例 |
|---|---|---|
| 题干 | 题干内容 | 1、要把大象装冰箱总共分为几步 |
| 类型 | 单选题/多选题 | 单选题 |
| 选项A | A、1步 | |
| 选项 | B、2步 | |
| 选项 | C、3步 | |
| 选项 | D、4步 | |
| 答案 | C | |
| 解析 | 解析:去问宋丹丹 |
2、使用刷题
(1)用pandas读取excel并展现题目,定义输入流接受做出的答案
(2)判断做答结果和参考答案是否一致
(3)将错题记录在list中并将其写入json文件
(4)显示答案和解析
(5)将错题摘录到excel
(6)题目做完总结。做了多少题目,正确题目数量,错误题目数量
四、代码实现
import json
import osimport pandas
import numpy# 读取excel
file_path = r'题目excel所在位置'
file_sheet = r'待刷题目所在sheet'
error_json = f'./{file_sheet}.json'
error_path = r'错题收集excel位置'
line_start = 3
data_frame = pandas.DataFrame(pandas.read_excel(file_path, sheet_name=file_sheet, keep_default_na=False, header=line_start))
questions = numpy.array(data_frame).tolist()class Learning:def __init__(self, questions):# 做的全部题目数量self.all_test = 0# 储存此次做的题目,用来避免重复self.all_list = []# 正确数量self.corrects = 0# 错误数量self.errors = 0self.Questions = questionsif not os.path.exists(error_json):with open(error_json, 'w', encoding='utf-8') as f:json.dump(list(), f)def choose(self):for line in self.Questions:print(f"题目:{line[0]}")for choose in line[2:6]:print(choose)do_choose = input('请输入你的答案:')if do_choose == line[6]:print('恭喜你答对了!')self.corrects += 1else:print(f'可惜,你答错了,正确答案是:{line[6]}')self.errors += 1with open(f'{error_json}', 'r', encoding='utf-8') as f:error_table = json.load(f)error_table.append(line)with open(error_json, 'w', encoding='utf-8') as f:json.dump(error_table, f, indent=4)self.all_test += 1self.all_list.append(line)print(f'解析:{line[7]}')print('==========================================')print(f'答题结束,此次共做 {self.all_test} 道题,答对 {self.corrects} 题,答错 {self.errors} 题,再接再厉!')def error_write(self):excel_writer = pandas.ExcelWriter(error_path)with open(f'{error_json}', 'r', encoding='utf-8') as f:error_table = json.load(f)error_dataframe = pandas.DataFrame(numpy.array(error_table))error_dataframe.to_excel(excel_writer)excel_writer.close()if __name__ == '__main__':Learning = Learning(questions)Learning.choose()Learning.error_write()
五、待优化项目
目前仅实现了刷题的功能,没有用GUI。
一方面是因为python的GUI看着其实也一般,咱自己用没有必要
另一方面,没那么多花啦呼哨好像刷题更能集中。
所以暂时没有做UI,往后有时间了再做吧。
相关文章:
一个自制的比较low的刷题软件
一个自制的比较low的刷题软件 一、背景 工作中往往涉及一些考试,比如阿里云ACP认证,华为GAUSS认证、软考等,应对这些考试的时候,我们往往是先看书后刷题(当然也有直接刷题的大神,毕竟考试,懂的…...
【Java 集合】List接口 —— ArrayList 与 LinkedList 详解
List接口继承自Collection接口,是单列集合的一个重要分支。 在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引(类似于数组中的元素角标)来访问集合中的指定元素。另外&…...
通信工程学习:什么是PNF物理网络功能
PNF:物理网络功能 PNF(Physical Network Function)即物理网络功能,是指支持网络功能的物理设备。以下是关于PNF的详细解释: 一、定义与特点 定义: PNF是网络设备厂商(如Cisco、华为、H3C等)通过专用硬件实体提供软件功能的设备。这些设备直接在物理服务器上运…...
Unity的Text组件中实现输入内容的渐变色效果
要在Unity的Text组件中实现输入内容的渐变色效果,默认的Text组件不直接支持渐变色。但是,你可以通过以下几种方式实现: ### 1. **使用Shader**来实现渐变效果 通过自定义Shader为Text组件创建一个渐变效果。这是一个常用的做法࿰…...
network-scripts目录下没有ens33文件的问题
作者:程序那点事儿 日期:2023/11/09 06:52 systemctl start NetworkManager #开启网络管理器nmcli con show #查看ens33网卡对应的是ifcfg-Wired_connection_3这个文件(网络管理器要开启,不然报错),或者根据…...
OpenHarmony(鸿蒙南向)——平台驱动指南【DAC】
往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 DAC(Digital to Analog Converter&…...
10.Lab Nine —— file system-下
Symbolic links 添加符号链接 1.添加有关symlink系统调用的定义声明,包括kernel/syscall.h, kernel/syscall.c, user/usys.pl 和 user/user.h. 2.添加新的文件类型T_SYMLINK到kernel/stat.h中,添加新的文件标识位O_NOFOLLOW到kernel/fcntl.h中 3.在ken…...
低代码中实现数据映射的必要性与方案
在数字化转型的浪潮中,低代码平台因其快速开发和灵活性而受到越来越多企业的青睐。然而,随着业务需求的复杂化,单纯依赖低代码工具往往难以满足企业在数据处理和业务逻辑上的要求。数据映射作为连接不同数据源和业务逻辑的桥梁,显…...
SpringBoot集成阿里easyexcel(一)基础导入导出
easyexcel主要用于excel文件的读写,可使用model实体类来定义文件读写的模板,对开发人员来说实现简单Excel文件的读写很便捷。可参考官方文档 https://github.com/alibaba/easyexcel 一、引入依赖 <!-- 阿里开源EXCEL --><dependency><gr…...
四元组问题
目录 问题描述 输入格式 输出格式 样例输入 样例输出 说明 评测数据规模 运行限制 原题链接 代码思路 问题描述 从小学开始,小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期,他遇到了一个非常有趣的问题&…...
如何用Prometheus监控禁用了Actuator的SpringBoot?
需求来源 prometheus监控微服务一般都是使用micrometer结合actuator来做: 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <d…...
使用TensorFlow实现一个简单的神经网络:从入门到精通
使用TensorFlow实现一个简单的神经网络:从入门到精通 在现代数据科学和机器学习领域,神经网络是一个非常重要的工具。TensorFlow 是一个开源的深度学习框架,由 Google 开发和维护,它使得构建和训练神经网络变得更加容易。本文将详细介绍如何使用 TensorFlow 实现一个简单的…...
应用DFX能力介绍
一、HarmonyOS生态DFX能力范围 围绕开发者,构建三方应用和设备从开发到维护全生命周期所必需、有竞争力、有特色的调试调优、定位、维护能力。 二、HarmonyOS DFX能力全集 三、DFX设计主要范围 1、HiLog 日志分类 日志常用命令 日志级别 日志规则 2、HiAppEvent 完…...
第三篇 第20章工程计价数字化与智能化
第三篇 工程计价 第20章 工程计价数字化与智能化 20.1 BIM在工程计价中的应用 20.1.1 BIM概述 1.定义 在建设工程及设施全生命周期内,对其物理特征和功能特征信息进行数字化表达,依次设计、施工、运营的过程和结果的总称。应由核心层、共享层、专业领域层、资源层四个概念层…...
成语700词(46~65组)
目录 46.熟悉、了解、知晓相关(15 个)47.很常见不奇怪(6 个)48.看法一致与否(10 个)49.从细节看全貌(10 个)50.看事情透彻(11 个)51.对事情的态度与评价(7 个)52.数量多与少(11 个)53.建筑相关(6 个)54.相同与不同(17 个)55.技艺精湛(10 个)56.与观看欣赏相…...
linux如何配置静态IP
文章目录 使用ip命令(临时配置)Debian/Ubuntu系统(使用netplan)CentOS/RHEL系统(使用nmcli或nmtui)使用nmcli(命令行界面)使用nmtui(文本用户界面)通过图形界…...
Dependency Check:一款针对应用程序依赖组件的安全检测工具
关于Dependency Check Dependency-Check 是一款软件组合分析 (SCA) 工具,可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 (CPE) 标识符来实现此目的。如果找到,它…...
Python 从入门到实战28(文件的读操作)
我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们讨论了文件的打开、创建、关闭的相关知识。今天我们将…...
[leetcode刷题]面试经典150题之7同构字符串(简单)
这个题虽然是简单题,但是看了半天还是没啥好思路,最后看了解题学到了不少知识点 1.index() 函数查找序列中首次出现的元素索引 2.zip函数:用于将可迭代的对象(如列表、元组、字典等)作为参数,将对象中对应…...
【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】
💌 所属专栏:【单片机开发软件技巧】 😀 作 者: 于晓超 🚀 个人简介:嵌入式工程师,专注嵌入式领域基础和实战分享 ,欢迎咨询! 💖 欢迎大家࿱…...
Chandra AI在教育领域的应用:智能学习助手开发
Chandra AI在教育领域的应用:智能学习助手开发 1. 引言 想象一下这样的场景:一个学生在深夜复习功课,遇到一道数学难题却找不到老师请教;一个上班族想学习新技能,但时间碎片化难以系统学习;一个老师面对几…...
Vivado 2020.2实战:XDMA IP核配置全解析(含PCIe 2.0速率计算避坑指南)
Vivado 2020.2实战:XDMA IP核配置全解析(含PCIe 2.0速率计算避坑指南) 在FPGA与主机间的高速数据交互场景中,PCIe协议凭借其高带宽和低延迟特性成为首选方案。Xilinx提供的XDMA IP核作为PCIe与AXI总线的桥梁,其配置过程…...
毕业设计实战:基于Java+MySQL的教务管理系统设计与实现指南
毕业设计实战:基于JavaMySQL的教务管理系统设计与实现指南 在开发“基于JavaMySQL的教务管理系统”毕业设计时,曾因课程报名表未通过学生ID与课程ID双外键关联踩过关键坑——初期仅设计报名编号、报名时间等基础字段,未与学生表、课程表建立关…...
毕业设计实战:基于SSM+JSP的家纺用品销售管理系统设计与实现全攻略
毕业设计实战:基于SSMJSP的家纺用品销售管理系统设计与实现全攻略 在开发“家纺用品销售管理系统”这套毕设时,我曾因“订单管理与商家库存脱节”踩过一个关键坑。初期设计时,我将“用户下单”和“商家库存扣减”视为两个独立操作,…...
【读书笔记】《如何做到爱孩子也被孩子爱》
《如何做到爱孩子也被孩子爱》作者:法国著名心理学家(著有《你好,焦虑分子》)核心框架:爱、理性与逻辑 本书提出教养孩子的三大抓手,缺一不可: 爱 → 带来丰富情感与能量,让孩子将来…...
2026年Java面试最常被问的1000道题目及参考答案
Java学到什么程度可以面试工作? 要达到能够面试Java开发工作的水平,需要掌握以下几个方面的知识和技能: 1. 基础扎实:熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础,也…...
ESP32 LVGL8.1 —— 消息框进阶:自定义按钮与事件处理实战
1. ESP32与LVGL8.1消息框基础认知 第一次接触ESP32和LVGL8.1的消息框功能时,我完全被它的灵活性震惊了。想象一下,你正在开发一个智能家居控制面板,当用户操作不当或者系统需要确认时,弹出一个美观的对话框是多么自然的事情。这就…...
GLM-OCR部署避坑:CPU模式也能用,无显卡用户详细指南
GLM-OCR部署避坑:CPU模式也能用,无显卡用户详细指南 你是不是也遇到过这种情况:看到别人用AI模型轻松识别文档、提取表格,自己也想试试,结果一查部署要求——“需要NVIDIA显卡,显存8GB以上”。手头只有一台…...
AI写论文超厉害!4款AI论文生成工具,解决毕业论文写作难题!
还在为撰写期刊论文而烦恼吗?面对成堆的文献、复杂的格式要求以及无休止的修改,许多学术人员常常感到效率低下。这并不奇怪!不过,不必太担心,以下将推荐4款实测有效的AI论文写作工具,它们能帮助你在论文文献…...
抖音批量下载工具:高效获取无水印视频与图文内容的全攻略
抖音批量下载工具:高效获取无水印视频与图文内容的全攻略 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
