开源——Python测评工具

Github仓库

本次实验作业的测评工具仅使用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 测评工具的更多相关文章

  1. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  2. Python开发工具PyCharm个性化设置(图解)

    Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文 ...

  3. 下破解安装Python开发工具WingIDE4.1

    步骤: 1.将系统时间调整到一个月之前,然后执行安装. 可以使用date命令调整系统时间,如:date -s '2012-08-14 10:00:00' 2.安装成功后,打开程序,按照提示信息,申请一 ...

  4. Python小工具--删除svn文件

    有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...

  5. arcgis通过 Python 使用工具 获得结果信息

    通过 Python 使用工具 ArcGIS 10 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息.工具通常具有定义一个或多个数据集的输入参数,这些数据集一般用于生成新的输出数据 ...

  6. 常用的十大Python开发工具

    据权威机构统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业.可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉 ...

  7. 你不得不看的Python机器学习工具

    IEEE Spectrum排行榜第一,Skill UP排名第一的开发工具,Stack Overflow年度调查中程序员最感兴趣的选择,Stack Overflow 6月份访问量最多的编程语言..... ...

  8. Python开发工具PyCharm个性化设置

    Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧     1.设置默认PyCharm解析器: 操作如下: Pyt ...

  9. 一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

随机推荐

  1. mssql中quotename的作用

    quotename是保证字符原样输入到mssql中 eg: select * from '+QUOTENAME(@tbname) 用于所传字符为mssql保留字样

  2. 知识点C++

    比较2个字符串的大小…… s1=s2,strcmp(s1,s2) == ; s1>s2, strcmp(s1,s2) == ; s1<s2, strcmp(s1,s2) == -; str ...

  3. python基础-6 正则表达式

    一 python正则简介 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现. 正则表达式模式被编译成一系列的字 ...

  4. SSI框架【Struts、Spring、iBatis、Hibernate】

    1.B/S架构的JavaEE开发设计模式,JavaEE架构分成三个层次即表现层.业务逻辑层.数据持久层:而这三层分别通过Struts.Spring.iBatis开源的框架紧密组合在一起的. Strut ...

  5. 通过document.domain实现跨域访问

    通过document.domain实现跨域访问:https://blog.csdn.net/nlznlz/article/details/79506655 前端跨域方法之document.domain ...

  6. ML5238电池管理芯片笔记

          根据公司需要开发了以ML5238电池管理芯片+STM8S为核心的电池管理系统.由于前期对BMS系统还是了解甚少,开发起来也遇到了不少困难.再开发管理系统的同时,我也开发了管理系统的上位机, ...

  7. 防止 iframe 的链接重定向父级页面

    项目中发现,多系统通过iframe嵌套时,如果iframe的请求是重定向会导致父级页面重定向,怎么破? 查找MDN(https://developer.mozilla.org/zh-CN/docs), ...

  8. SCUT - 77 - 哈利波特与他的魔法杖 - 线段树

    https://scut.online/p/77 线段树的一种奇怪的应用,暴力区间更新,每次update直接pushdown到底部,然后从维护底部.这样下次update的时候假如提前遇到底部就很快返回 ...

  9. 《Cascaded Pyramid Network for Multi-Person Pose Estimation》论文阅读及复现笔记

    一.PipeLine 要点 TopDown + GlobalNet + RefineNet 二.Motivation 通过提高对难以识别的关键点的识别准确率,来提升总体识别准确率. 方法:1.refi ...

  10. 成为k8s大佬,从这个操作开始(伪) - 程序员学点xx 42 k8s

    目录 Kubernetes -2- 这是yann的第97篇分享 本日状态: ​ 饿着肚子写公众号的 yann 同学. 第 1 部分 反省 昨天的内容被熊哥批评了. 熊哥说,「你光想着自己爽,一句我认为 ...