number_of_testcases = input()
number_of_girls = int(input().split())
i=0
a = []
b = []
while i < number_of_girls:
v,n = input().split()
a.append(v)
b.append(n)
i = i +1
我试图使每个测试用例的第一行包含一个整数
n
,然后是n
行,每行包含两个以空格分隔的整数。我得到的错误是
v,n = input()。split()
EOFError:读取行时EOF'
有人可以解释一下吗?我是python的新手,很难理解。
最佳答案
从错误消息中猜测:您似乎没有足够的数据可解析。但是您的代码应该会给您带来更早的错误:
因为int()
可以对包含单个数字的字符串进行操作-不适用于包含多个字符串的列表。
采用
number_of_girls = list(map(int,input().split()))
相反,您会得到一个整数列表,如果您输入非数字,它会崩溃。
通常,做您要达到的目标我会做:
data = []
cases = int(input().strip()) # number of cases in a single line
for _ in cases:
girls = int(input().strip()) # number of girs per test case given in single line
case = [[],[]]
for _ in range(girls):
a,b = map(int,input().strip().split()) # 2 numbers space seperated in single line
case[0].append(a)
case[1].append(b)
data.append(case)
获取所有测试用例的所有数据。
关于python - 为什么我无法使用python使用单个输入函数获得两个由空格分隔的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58128322/