n = input()
dum = input()
d = {}
for i in range(0,n+1):
x = raw_input()
x = x.split(" ")
d[int(x[0])] = int(x[1])
array = d.keys()
for key in d.keys():
if(d[key]!=0):
if(d[key] not in d.keys()):
for i in d.keys():
for j in d.keys():
if(i!=j and i!=key and j!=key):
if(i+j==d[key]):
# print str(i)+"-"+str(j)
if(i in array):
array.remove(i)
if(j in array):
# print j
array.remove(j)
else:
# print d[key]
array.remove(d[key])
print array[0]
当我执行这个Python代码时,我在阅读输入时收到“EOF错误”。
你能帮帮忙吗?我正在运行Python 2.7.5错误追溯
Traceback (most recent call last):
File "prog.py", line 1, in <module>
EOFError: EOF when reading a line
答案 0 :(得分:3)
虽然使用与您相同的输入,但似乎无法重现此错误。也许你在指定的输入之前有一个newline
字符?
尝试使用终端中的python prog.py
运行此代码。
EOF error
或input
时未提供任何数据,则需要 raw_input
。
此外,建议在raw_input
上获取用户的输入时使用input
而非python 2
,但它不会修复您的错误。
答案 1 :(得分:1)
在Python 2中,raw_input()
返回一个字符串,input()
尝试将输入作为Python表达式运行。因此,将第一行更改为类似的内容应该有效。
n = int(raw_input())
根据官方documentation
相当于eval(raw_input(prompt))。
此功能不会捕获用户错误。如果输入不是 语法有效,将引发SyntaxError。其他例外 如果评估过程中出现错误,可能会被提出。
答案 2 :(得分:0)
此:
for i in range(0,n+1):
执行n+1
次迭代,但输入文件为:
5
6
11 21
21 0
31 52
41 61
61 0
当该循环即将开始时,仅剩余n
个行数。在尝试读取n+1
行时,您将获得EOFError,因为没有更多行。
答案 3 :(得分:0)