почему я не могу получить два целых числа, разделенных пробелом, используя одну функцию ввода, используя Python - PullRequest
1 голос
/ 27 сентября 2019
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, и это трудно понять.

1 Ответ

0 голосов
/ 27 сентября 2019

Судя по вашему сообщению об ошибке: у вас недостаточно данных для анализа.Но ваш код должен выдавать еще более раннюю ошибку:

, поскольку 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)

, чтобы получить все данные для всех тестовых случаев.

...