当前位置: 首页 > news >正文

一个自制的比较low的刷题软件

一个自制的比较low的刷题软件

一、背景

工作中往往涉及一些考试,比如阿里云ACP认证,华为GAUSS认证、软考等,应对这些考试的时候,我们往往是先看书后刷题(当然也有直接刷题的大神,毕竟考试,懂的都懂)。有的题库是可以在部分免费刷题软件找到的,比如233网校就有证券从业的题库,但有些题库则很难找到免费的刷题渠道。某宝一查,发现好多卖线下题库的,10元到50元不等。笔者本着能不花钱就不花钱的原则(ps:绝不是因为出不起10块钱),所以琢磨能不能自己搞一个刷题软件,毕竟好些题网上也有啊。

有同学说了也有一些现成的刷题软件的,我试了几款,要不就是有题目数量的限制,要不就是需要先查看广告或者有广告弹窗,一不小心就点上了。

二、一般性的功能分析

1、每次能给出题干和选项,选择后判断是否正确,并给出解析。

2、将错题摘录下来,供错题强化和复习

三、实现思路

1、题目整理

将题目整理到excel,按照章节或者自定义分类,每个分类可以有多套题目。每类题目整理在一个excel中,每一类的每套题分布在这个excel的不同sheet。

excel表头如下:

表头说明举例
题干题干内容1、要把大象装冰箱总共分为几步
类型单选题/多选题单选题
选项AA、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组件创建一个渐变效果。这是一个常用的做法&#xff0…...

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文件的读写&#xff0c;可使用model实体类来定义文件读写的模板&#xff0c;对开发人员来说实现简单Excel文件的读写很便捷。可参考官方文档 https://github.com/alibaba/easyexcel 一、引入依赖 <!-- 阿里开源EXCEL --><dependency><gr…...

四元组问题

目录 问题描述 输入格式 输出格式 样例输入 样例输出 说明 评测数据规模 运行限制 原题链接 代码思路 问题描述 从小学开始&#xff0c;小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期&#xff0c;他遇到了一个非常有趣的问题&…...

如何用Prometheus监控禁用了Actuator的SpringBoot?

需求来源 prometheus监控微服务一般都是使用micrometer结合actuator来做&#xff1a; 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <d…...

使用TensorFlow实现一个简单的神经网络:从入门到精通

使用TensorFlow实现一个简单的神经网络:从入门到精通 在现代数据科学和机器学习领域,神经网络是一个非常重要的工具。TensorFlow 是一个开源的深度学习框架,由 Google 开发和维护,它使得构建和训练神经网络变得更加容易。本文将详细介绍如何使用 TensorFlow 实现一个简单的…...

应用DFX能力介绍

一、HarmonyOS生态DFX能力范围 围绕开发者&#xff0c;构建三方应用和设备从开发到维护全生命周期所必需、有竞争力、有特色的调试调优、定位、维护能力。 二、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命令&#xff08;临时配置&#xff09;Debian/Ubuntu系统&#xff08;使用netplan&#xff09;CentOS/RHEL系统&#xff08;使用nmcli或nmtui&#xff09;使用nmcli&#xff08;命令行界面&#xff09;使用nmtui&#xff08;文本用户界面&#xff09;通过图形界…...

Dependency Check:一款针对应用程序依赖组件的安全检测工具

关于Dependency Check Dependency-Check 是一款软件组合分析 &#xff08;SCA&#xff09; 工具&#xff0c;可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 &#xff08;CPE&#xff09; 标识符来实现此目的。如果找到&#xff0c;它…...

Python 从入门到实战28(文件的读操作)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了文件的打开、创建、关闭的相关知识。今天我们将…...

[leetcode刷题]面试经典150题之7同构字符串(简单)

这个题虽然是简单题&#xff0c;但是看了半天还是没啥好思路&#xff0c;最后看了解题学到了不少知识点 1.index() 函数查找序列中首次出现的元素索引 2.zip函数&#xff1a;用于将可迭代的对象&#xff08;如列表、元组、字典等&#xff09;作为参数&#xff0c;将对象中对应…...

【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】

&#x1f48c; 所属专栏&#xff1a;【单片机开发软件技巧】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xff1…...

Rviz Publish Point进阶玩法:打造你的交互式机器人任务编辑器

Rviz Publish Point进阶玩法&#xff1a;打造你的交互式机器人任务编辑器 在仓储巡检、展厅导览等场景中&#xff0c;机器人需要频繁执行多目标点任务序列。传统编程方式每次修改路径都需要重新编译代码&#xff0c;而Rviz的Publish Point功能配合定制化开发&#xff0c;可以将…...

终极风扇控制解决方案:3步实现Windows系统智能温控管理

终极风扇控制解决方案&#xff1a;3步实现Windows系统智能温控管理 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

Chrome 148紧急安全更新深度解析:127个漏洞背后的GPU UAF沙箱逃逸与防御实战

一、引言&#xff1a;史上最密集的Chrome安全更新风暴 2026年5月5日&#xff0c;Google紧急推送了Chrome 148稳定版的第二次安全更新&#xff08;版本号Windows/Mac 148.0.7778.96/97&#xff0c;Linux 148.0.7778.96&#xff09;&#xff0c;一次性修复了127个安全漏洞&#x…...

独立可托管的 listmonk:新闻通讯与邮件列表管理的高效工具

【导语&#xff1a;listmonk 作为一款独立且可自行托管的新闻通讯和邮件列表管理工具&#xff0c;以其速度快、功能丰富等特点受到关注。本文将介绍其安装方式、开发者相关信息及许可证等内容。】功能特性鲜明的 listmonklistmonk 是一款独立的、可自行托管的新闻通讯和邮件列表…...

告别盲选!Space Thumbnails让3D模型文件在Windows资源管理器中“活“起来

告别盲选&#xff01;Space Thumbnails让3D模型文件在Windows资源管理器中"活"起来 【免费下载链接】space-thumbnails Generates preview thumbnails for 3D model files. Provide a Windows Explorer extensions that adds preview thumbnails for 3D model files.…...

LLM Notebooks:从零构建RAG问答系统的实践指南

1. 项目概述&#xff1a;一个面向大语言模型实践的“笔记本”仓库最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫qianniuspace/llm_notebooks。光看名字&#xff0c;llm_notebooks&#xff0c;大语言模型笔记本&#xff0c;这指向性就非常明确了。这大…...

打造便携式Kali Linux安全评估工具:OpenClaw USB定制全攻略

1. 项目概述&#xff1a;一个便携式安全评估工具的诞生 在安全研究、渗透测试或者应急响应的现场&#xff0c;你经常会遇到一个经典困境&#xff1a;目标环境可能是一台物理隔离的机器&#xff0c;或者是一台你无法安装任何软件的“干净”主机。你需要一个功能强大、即插即用的…...

Halcon深度学习工具(DLT)安装与中文环境配置实战

1. Halcon DLT安装前的准备工作 第一次接触Halcon深度学习工具(DLT)时&#xff0c;我完全被各种专业术语搞晕了。后来才发现&#xff0c;只要做好前期准备&#xff0c;安装过程其实比想象中简单得多。首先需要确认的是你的Windows系统版本&#xff0c;DLT目前支持Windows 10和1…...

Seraphine:英雄联盟智能BP助手与战绩查询工具完整指南

Seraphine&#xff1a;英雄联盟智能BP助手与战绩查询工具完整指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟的对局中&#xff0c;BP&#xff08;禁选英雄&#xff09;阶段往往是决定胜负的关…...

Google Labs Jules Awesome List:构建与维护高质量开发者资源清单指南

1. 项目概述&#xff1a;一份面向开发者的“Awesome List”清单在开源社区和开发者圈子里&#xff0c;有一个约定俗成的传统&#xff1a;当某个技术领域或工具生态变得足够庞大和复杂时&#xff0c;总会有热心的贡献者站出来&#xff0c;整理一份名为“Awesome List”的清单。这…...