Python中的输入错误(EOF错误)

时间:2014-08-23 11:30:36

标签: python python-2.7 input

我在许多解决方案中都有这个错误。我在这个主题上经历了很多答案,但无法解决问题。我只能弄清楚问题可能是从单个输入文件中获取输入,其中输入整个输入字符串在一个输入调用中,并在第二个原始输入调用上显示EOF错误。

def change(a,b,l):
alist = []
blist = []
for m in range(0,26):
    alist.append(0)
    blist.append(0)
for i in a:
    alist[l[i]] += 1
for j in b:
    blist[l[j]] += 1
common = 0
for i in range(0,26):
    dif = (alist[i] - blist[i])
    if (dif != alist[i]):
        common += min(alist[i],blist[i])
total = (min(len(a),len(b)) - common) + abs(len(a) - len(b))
return total

test = int(raw_input())
ans = []
l = {}
for i in range(65,91):
    l[chr(i)] = i - 65
for i in range(0,test):
    a = str(raw_input())
    b = str(raw_input())
    ans = ans + [change(a,b,l)]
for j in ans:
    print j

如果有人能够描述如何从单个输入文件中多次提取输入,那将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

特别是如果您想要从文件而不是终端输入,您可以使用文件对象的readline()功能。例如:

import sys

def test(f):
    num = int(f.readline())
    for i in range(num):
        a = int(f.readline())
        b = int(f.readline())
        print a, b


if __name__ == '__main__':
    test(sys.stdin)

您可能还希望实际使用文件末尾作为输入结束的标记。在您的示例中,您可能不会要求获取第一行中的记录数,但只是继续直到您点击EOF。