尝试将此作业上传到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)
答案 0 :(得分:2)
卡蒂斯(Kattis)隐藏的错误如下:
TypeError Traceback (most recent call last)
<ipython-input-64-12e4fc526e4c> in <module>
b = y_test.tolist()
train_fpr, train_tpr, tr_thresholds = roc_auc_score(a,y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_auc_score(b,y_test_pred)
TypeError: 'numpy.float64' object is not iterable
您不能在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
转换为行列表。