Ввод нескольких тестов построчно

Входные данные содержат одно или несколько тестовых заданий. В каждой строке содержится по одному тестовому заданию. Каждая строка содержит день название месяца и год Количество тестовых заданий не превышает 100000

Ввод:

1 January 2020
31 December 2022

Вывод

Wednesday
Saturday

Саму задачу я сделал, но как сделать ввод нескольких значений не знаю. Если делаю так:

import datetime
data = []
while True:
    text = input()
    if not text:
        break
    day, m, year = text.split()
    day = int(day)
    year = int(year)
    datetime_object = datetime.datetime.strptime(m, "%B")
...

то Яндекс контест выводит ошибку EOFError: EOF when reading a line


Ответы (3 шт):

Автор решения: Аркадий

Попробуйте сначала записать все вводимые данные в лист

input_data = []
while True:
    text = input()
    if not text:
        break
    input_data.append(text)

а потом уже их обработать (вне первого цикла while):

for e in input_data:
    # обработка:
    day, m, year = e.split()
    ...
→ Ссылка
Автор решения: SergFSM

слегка подправил ваш код, теперь он работает:

import datetime

while True:
    text = input()
    if not text:
        break
    w = datetime.datetime.strptime(text, '%d %B %Y').strftime('%A')
    print(w)

ввод-вывод:

1 January 2020
Wednesday
31 December 2022
Saturday
→ Ссылка
Автор решения: Alex

Ввести получилось только через файл:

import datetime

ifile = open("input.txt", "r")
dates = [line.rstrip() for line in ifile.readlines()]
for date in dates:
    day, m, year = date.split()
    day = int(day)
    year = int(year)
    # ...
→ Ссылка