快速了解 OJ 判题系统如何在python中使用?
快速,了解,OJ,判题,系统,如何,python,使用
2025-03-13 21:27:20 时间
OJ 简介
Online Judge,翻译成中文,即在线评判系统,简称OJ。简单的说:OJ就是一个网上做编程题的系统,你可以根据人家给的题目编程,提交之后系统会判断你做的对不对。
判题原理
首先提前准备测试数据与答案。然后传入测试数据给提交的代码,如果得到的答案与我们给定的一致,就认为代码正确。
比如下面这题:
如果你直接打印aaabbbccc,肯定是通不过的,后面可能还有很多其它的测试数据:
111
222
333
abc
123
456
其实自己也可以做一个简单的判断系统,比如学生给你提交很多代码作业,你可以自动让程序去判断。
单个学生作业:
判断代码:
更多学生只需要来个批量操作即可。
所以OJ是看结果不看过程的(一般的oj系统都有时间和空间限制的,如果很低效的解决方法,是通不过的。)
Python3如何在OJ获取输入数据
很多人第一次使用OJ系统,还是很不适应的,一直错误,主要是不知道如何获取输入的数据。
输入数据模式常见的有三种。
模式一
本模式适用于固定 n 行,每行一个数据,数据类型无所谓。该模式的典型题目如下图。
如上图所示,一共三行,每行一个字符串。因此,我们可以利用 input() 这个函数来获取输入,基本方法如下:
# 获取三行测试数据
a = input()
b = input()
c = input()
模式二
本模式适用于只有一行输入,在这行输入中有若干个数据,每个数据用空格或者其他字符隔开。如下图所示:
因此,我们可以利用 input() 这个函数来获取输入,然后再使用 split分隔。如下:
>>> a,b,c = map(int, input().split()) # 获取测试数据并处理成数字
3 4 55
>>> print(a,b,c)
3 4 55
模式三
本模式适用于有若干行输入。对于每行多少个数据,我们再分别套用模式一或者模式二即可。如下图所示:
由于第一行是行数,所以可以先将行数记录,然后循环即可。
a = int(input()) # 获取测试数据的行数
l = []
# 循环获取输入的测试数字
for i in range(a):
b = int(input())
l.append(b)
print(l)
还有一些系统的题目比较特殊,也是有若干行输入,但是输入数据没有指定几行,由于我们不知道到底有几行,只能通过读到 EOF 的时候确认输入结束。因此我们可以使用死循环读取模式来解决这个问题。如下所示:
while True:
try:
x = int(input())
except:
break
(全文完)
相关文章
- 20·Python基础-单例模式四种实现方式
- 用 Python 破解 WiFi 密码,太刺激了!
- Python进阶39-drf框架(一)
- USB 摄像头 进行python OpenCV 操作的基础设置【以yolo 目标检测为例】
- python anaconda和pycharm的区别_质量度三者关系
- Python项目47-前后端分离登录注册页(继续撸)
- pycharm导入Python_python简单项目
- 干货 | OpenCV获取不规则区域的最大内切圆(附Python / C++ 源码)
- Python元祖详解
- pycharm连接mysql数据库代码_怎么把Python与pycharm连接
- Python项目49-用户验证短信接口(可劲撸)
- pycharm所有文件中查找_python查找文件
- 更新pycharm版本_pycharm怎么更改python环境
- pycharm配置pyqt5_python pyqt5教程
- Python 模板渲染库 yaml 和 jinja2 的实战经验分享
- python 函数、运算符以及运算符优先级
- 使用python进行词频分析
- X波段双极化相控阵天气雷达基数据的python读取方法
- Pycharm和Anaconda的python版本问题
- python解释器找不到_python解释器路径