我正在尝试解决一个编程问题,该问题涉及为上传的个人资料图片返回布尔值,将其分辨率与我作为输入提供的分辨率相匹配,并返回下面将描述的语句。这是一个这样的测试用例,它给了我错误:
180
3
640 480 CROP IT
320 200 UPLOAD ANOTHER
180 180 ACCEPTED
第一行读取需要匹配的维度,第二行代表测试用例的数量,其余部分包含带有空格分隔符的分辨率。对于每种分辨率,需要打印每行显示的输出。
我已经尝试过了,因为这是我能想到的最自然的东西,并且对Python I / O来说是很新的东西:
from sys import stdin, stdout
dim = int(input())
n = int(input())
out = ''
for cases in range(0, n):
in1 = int(stdin.readline().rstrip('\s'))
in2 = int(stdin.readline().rstrip('\s'))
out += str(prof_pic(in1, in2, dim))+'\n'
stdout.write(out)
ValueError: invalid literal for int() with base 10 : '640 480\n'
prof_pic
是我在此不介绍的功能,以防止发布时间过长。但是我以这样的方式编写宽度和高度参数都与dim
进行比较并返回输出。问题在于读取这些行。用不同的分隔符读取此类行的最佳方法是什么?
答案 0 :(得分:1)
您可以尝试使用python 3.x
dimention=int(input())
t=int(input())
for i in range(t):
a=list(map(int,input().split()))
答案 1 :(得分:1)
代替:
in2 = int(stdin.readline().rstrip('\s'))
您可以尝试:
in2 = map( int, stdin.readline().split()[:2])
你会得到
in2 = [640, 480]
答案 2 :(得分:1)
您正在呼叫readline
。顾名思义,这是一整行。 (如果不确定所得到的是什么,则应尝试print
将其删除。)因此,您将得到如下内容:
640 480 CROP IT
您不能为此打int
。
您要做的是split
,将其分成几部分,如下所示:
['640', '480', 'CROP IT']
例如:
line = stdin.readline().rstrip('\s')
in1, in2, rest = line.split(None, 2)
现在您可以将前两个转换为整数:
in1 = int(in1)
in2 = int(in2)