[英]Why does this Python code give a runtime error when I try to upload it on kattis?
尝试将此作业上传到 kattis 时,我不断收到运行时错误: https://open.kattis.com/problems/qaly
我已经从 kattis 阅读了关于 python 的文档,并将输入更改为 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)
Kattis 隐藏的错误如下:
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
您不能像sys.stdin
一样在_io.TextIOWrapper
object 上使用方括号来检索输入的特定元素,因为它没有实现__getitem__
。
您可以使用input()
检索输入的一行,也可以使用sys.stdin.readlines()
将sys.stdin
转换为行列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.