Почему этот код Python выдает ошибку времени выполнения, когда я пытаюсь загрузить его в kattis? - PullRequest
0 голосов
/ 23 сентября 2019

Я получаю ошибку времени выполнения при попытке загрузить это назначение в kattis: https://open.kattis.com/problems/qaly

Я уже прочитал документацию по python от kattis и изменил ввод на sys.stdin.Вот что я пытаюсь загрузить:

QALY = 0
for i in range(1, int(sys.stdin[0])+1):
    QALY += float(sys.stdin[i].split(" ")[0])*float(sys.stdin[i].split(" ")[1])
print(QALY)

Когда я пытаюсь сделать это в pycharm, используя этот код, он работает:

f=open("/Users/lottehurkens/PycharmProjects/kattis/1.in", "r")
r = f.readlines()
QALY = 0
for i in range(1, int(r[0])+1):
    QALY += float(r[i].split(" ")[0])*float(r[i].split(" ")[1])
print(QALY)

1 Ответ

2 голосов
/ 23 сентября 2019

Ошибка, скрытая Каттисом, следующая:

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    for i in range(1, int(sys.stdin[0])+1):
TypeError: '_io.TextIOWrapper' object is not subscriptable

Нельзя использовать скобки для _io.TextIOWrapper объекта, такого как sys.stdin, для извлечения определенного элемента ввода, поскольку он не реализует__getitem__.

Вы можете использовать input() для извлечения одной строки ввода или вы можете преобразовать sys.stdin в список строк с помощью sys.stdin.readlines().

...