繁体   English   中英

为什么当我尝试在 kattis 上上传此 Python 代码时会出现运行时错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM