Python 测评工具
开源——Python测评工具
本次实验作业的测评工具仅使用Python语言编写。
程序思路是基于文本的快速匹配。
编译test.py运行
1.GUI界面
GUI界面使用了PyQt5完成,简单、易用
2.操作逻辑
2.1 作业要求
首先要求同学代码统一使用循环读入字符串的形式读入数据,保证了数据读入的效率。
然后直接使用print(json.dumps(dic))的形式打印出答案,保证输出格式统一。
一行输入对于一行输出。主文件以学号命名,如 ‘041702324.py’
2.2 代码获取
直接使用gitpython库,在测评工具下提取指定链接地址的github仓库。将作业代码及其依赖文件clone到本地文件夹。保证了程序运行时所需要的依赖文件,如.json .xlsx等
2.3 程序执行
在程序执行前,为保证程序输入,输出正确。我们使用了输入输出重定向的方式。
但是,第一次时遇到了windows的致命问题,windows控制台下的中文编码并非是utf-8
格式式,并且无法正确转换编码。
于是借鉴了丁枢桐同学的思路,直接修改测评代码,正在代码前后分别加上以下代码。
# -*- coding: utf-8 -*-
import sys,os
sys.stdin=open(r'./input.txt','r',encoding='utf-8')
sys.stdout=open(r'./output.txt','w',encoding='utf-8')
...
sys.stdout.close()
sys.stdin.close()
直接使用sys库的stdin,stdout,重定向input,print的数据接收和输出方向。
然后执行
os.system('python '+文件名)
控制台下直接运行python程序
2.4 答案比对
获取到2.3的output.txt后,与标准答案 answer.txt逐行比对即可。
3. 程序的性能比较
本测评工具不仅在功能上包含了天枢星的单个测试点比较的功能,保证程序bug不会使你程序终止为0分,同时考虑到了python性能较差的方面,如果程序使用了大量的附加文件如xlsx,json等导致程序运行缓慢,如果单个输入输出,会导致测试较慢。于是我们使用快速程序直接单次运行下读入全部数据,和输出全部数据。
Python 测评工具的更多相关文章
- 【Machine Learning】Python开发工具:Anaconda+Sublime
Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...
- Python开发工具PyCharm个性化设置(图解)
Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文 ...
- 下破解安装Python开发工具WingIDE4.1
步骤: 1.将系统时间调整到一个月之前,然后执行安装. 可以使用date命令调整系统时间,如:date -s '2012-08-14 10:00:00' 2.安装成功后,打开程序,按照提示信息,申请一 ...
- Python小工具--删除svn文件
有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...
- arcgis通过 Python 使用工具 获得结果信息
通过 Python 使用工具 ArcGIS 10 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息.工具通常具有定义一个或多个数据集的输入参数,这些数据集一般用于生成新的输出数据 ...
- 常用的十大Python开发工具
据权威机构统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业.可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉 ...
- 你不得不看的Python机器学习工具
IEEE Spectrum排行榜第一,Skill UP排名第一的开发工具,Stack Overflow年度调查中程序员最感兴趣的选择,Stack Overflow 6月份访问量最多的编程语言..... ...
- Python开发工具PyCharm个性化设置
Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧 1.设置默认PyCharm解析器: 操作如下: Pyt ...
- 一种数据与逻辑分离的Python单元测试工具
一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...
随机推荐
- 【ABAP系列】SAP ABAP 仓库库存-物料拆分的算法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 仓库库存-物料 ...
- 安装gradle和配置
1:官网下载地址:https://docs.gradle.org/current/userguide/installation.html 下载自己认为的版本(压缩包) 2:解压到目标目录 3:配置gr ...
- java中java.util.Date和java.sql.Date之间的关系和使用选择
关系: java.util.Date是java.sql.Date的父类 区别:(java.sql.Date包含年月日信息,java.util.Date包含年月日时分秒) 1:“规范化”的java.sq ...
- pandas 入门(3)
from pandas import Series, DataFrame, Index import numpy as np # 层次化索引 对数据重塑和分组操作很有用 data = Series(n ...
- Python3的基本数据类型
2.1. Python3中六个标准的基本数据类型: Number(数字) String(字符串) Sets(集合) Tuple(元组) List(列表) Dictionary(字典) 2.2. Pyt ...
- Node.JS实战34:远程屏幕监控?可以的
是否想做一个远程系统屏幕监控功能?这是个有意思的功能. Node.JS可以实现,而且很方便. 目标效果: 在网页中实时查看系统屏幕内容. 实现原理: 1.用express实现服务器: 2.当访问来临时 ...
- Java中获取大小:length、length()、size()
1. java 中的 length 属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了 length 这个属性. 2. java 中的 length() 方法是针对字符串说的,如 ...
- SCUT - 11 - 被钦定的选手 - 质因数分解
https://scut.online/p/11 T了好多次,还想用mutimap暴力分解每个数的质因数.后来记录每个数的最小质因子过了. #include <bits/stdc++.h> ...
- IE, Chrome和Firefox浏览器 差异对比
最近的项目中使用Extjs5.6, 其中主要的一个特点就是js文件的动态加载,之前使用Firefox浏览器对js文件进行调试,打断点时,只对当次调试有效,刷新之后,由于动态加载的js文件(文件名后面加 ...
- 【focus-lei 】微服务
随笔分类 - 微服务 .net core使用NLog+Elasticsearch记录日志 摘要:在微服务或分布式系统中,如果将日志作为文件输出,查看系统日志将非常不便:如果将日志保存到数据库中,又不能 ...