[英]Python- EOFError: EOF when reading a line
我正在嘗試使用以下代碼解決問題:
def inmobi(t):
while t:
li = map(int, raw_input().split())
n, ans = li[0], li[1:]
one, two, op = [], [], []
for e in range(n):
for i in range(1, n):
if e + i < n:
one.append(ans[e] + ans[e + i])
two = sorted(one)
print two[n-1] - two[n-2]
t += 1
t = int(raw_input())
inmobi(t)
當我在Ubuntu中使用Linux Shell運行時,此代碼為我提供了所需的輸出。 但是,當我嘗試使用競爭性編程網站提供的解釋器運行此代碼時,出現以下錯誤:
Traceback (most recent call last):
File "/tmp/editor_trsource_1438181626_447674.py", line 14, in
inmobi(t)
File "/tmp/editor_trsource_1438181626_447674.py", line 3, in inmobi
li = map(int, raw_input().split())
EOFError: EOF when reading a line
我嘗試閱讀其他類似問題的答案,但在我看來,這些問題似乎都不起作用。
根據競爭性編程網站,我假設輸入的第一行是測試用例的數量(通常是這種情況)。
您的問題基本上符合要求-
t += 1
在這里,您不斷增加t
的值,但是您的while條件是while t:
, t
永遠不會下降,因此while循環永遠不會退出,因此,基本上while循環是一個無限循環,並且在從編程競賽網站上獲得輸入后不久精疲力盡,導致您看到的EOFError
。 我不知道它如何在Linux中為您工作,但它也應該在那里陷入無限循環。 您應該減少t,而不是增加它。
t -= 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.