Python 读取用空格分隔的int对象的输入行?

Python 读取用空格分隔的int对象的输入行?,python,io,Python,Io,我正在尝试解决一个编程问题,其中包括为上传的配置文件pic返回一个布尔值,将其分辨率与我提供的作为输入的分辨率匹配,并返回我在下面描述的语句。这是一个给我带来错误的测试用例: 180 3 640 480 CROP IT 320 200 UPLOAD ANOTHER 180 180 ACCEPTED 第一行读取需要匹配的维度,第二行表示测试用例的数量,其余的由带空格分隔符的解析组成。对于每种分辨率,需要打印每行显示的输出 我已经尝试过了,因为这是我所能想到的最自然的

我正在尝试解决一个编程问题,其中包括为上传的配置文件pic返回一个布尔值,将其分辨率与我提供的作为输入的分辨率匹配,并返回我在下面描述的语句。这是一个给我带来错误的测试用例:

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
是我在这里避免描述的功能,以防止文章过长。但我编写的方法是,将width和height参数与
dim
进行比较,并返回一个输出。问题在于读那些台词。用不同的分隔符读取这类行的最佳方法是什么?

您可以试试这个,它在python 3.x中

维度=int(输入())
t=int(输入())
对于范围(t)内的i:

a=list(map(int,input().split())

您可以在python 3.x中尝试此功能

维度=int(输入())
t=int(输入())
对于范围(t)内的i:
a=列表(映射(int,input().split())
而不是:

in2 = int(stdin.readline().rstrip('\s'))
你可以尝试:

in2 = map( int, stdin.readline().split()[:2])
你得到了什么

in2 = [640, 480]
而不是:

in2 = int(stdin.readline().rstrip('\s'))
你可以尝试:

in2 = map( int, stdin.readline().split()[:2])
你得到了什么

in2 = [640, 480]

您正在调用
readline
。顾名思义,这是一整行。(如果你不确定你得到的是什么,你应该试着把它打印出来。)所以,你得到的是这样的东西:

640 480      CROP IT
['640', '480', 'CROP IT']
你不能在这个问题上调用
int

您要做的是
将该行拆分为如下所示的单独部分:

640 480      CROP IT
['640', '480', 'CROP IT']
例如:

line = stdin.readline().rstrip('\s')
in1, in2, rest = line.split(None, 2)
现在,您可以将前两个转换为整数:

in1 = int(in1)
in2 = int(in2)

您正在调用
readline
。顾名思义,这是一整行。(如果你不确定你得到的是什么,你应该试着把它打印出来。)所以,你得到的是这样的东西:

640 480      CROP IT
['640', '480', 'CROP IT']
你不能在这个问题上调用
int

您要做的是
将该行拆分为如下所示的单独部分:

640 480      CROP IT
['640', '480', 'CROP IT']
例如:

line = stdin.readline().rstrip('\s')
in1, in2, rest = line.split(None, 2)
现在,您可以将前两个转换为整数:

in1 = int(in1)
in2 = int(in2)

这里的每个解决方案都有效,但你的只有一行。这里的每个解决方案都有效,但你的只有一行。