Почему этот код Python выдает ошибку выполнения, когда я пытаюсь загрузить его на kattis?
Я все время получаю сообщение об ошибке выполнения при попытке загрузить это задание на 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 ответ
Ошибка, скрытая Каттис, заключается в следующем:
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()
.