如何在服务器端 python 标准输入中检查 EOF



所以我试图让HackerRank服务器为我检查代码。我建立了一个名字和他们各自的电话号码的字典。HackerRank 服务器使用 stdin 通过在连续的行中输入名称来查询其号码的名称,直到用完名称。

我知道在shell中使用Ctrl + D(Unix)或Ctrl + Z(Windows)来发出EOF信号,但我不确定如何设置我的代码,以便程序停止尝试从stdin读取 - 当服务器停止输入查询时 - 并打印电话号码。这是我对解决方案的最佳猜测:

N=input()               #number of phonebook entries
D={}
for i in range(N):      #build phonebook as dictionary using stdin
    name=raw_input()
    number=raw_input()
    D[name]=number

for i in range(10000):  #queries are then entered with a max number of 10^4
    try:
        line=raw_input()
        if line in D.keys():
            print line + "=" + D[line]     #print name=phonenumber
        else:
            print "Not found"
    except EOFError:     #break out of loop if EOF is reached
        break 

这似乎没有做到,我想知道这是因为我没有正确读取EOF还是原始问题中的某些特殊性,我可能没有正确解释。

line将是到达文件末尾时''的空字符串。

最新更新