6

当我在代码中遇到以下问题时,我正在解决 HackerRank 上的问题。我在我的 Python (2.7.10) IDLE 上对其进行了测试,它运行良好。但它在 HackerRank 上显示以下错误:

Traceback (most recent call last):
  File "solution.py", line 13, in <module>
    input_2=input()
EOFError: EOF when reading a line

我输入了以下代码:

import sys 
input_2=""
n=int(input())
m=0
l=0
array=[]
main_array=[]
for i in range (0,n):
    inp=input()
    array=(inp.split(" "))
    main_array+=array   
for no in range(0,100000,1):    
    input_2=input()
    for m in range(0,len(main_array),2):
        l=0
        if input_2==main_array[m]:
            l+=1
            print (main_array[m]+"="+main_array[m+1])
    if l==0:
        print ("Not found")

我不知道为什么这个错误出现在 HackerRank 引擎中。谢谢

4

2 回答 2

3

我在 HackerRank 中编码时遇到了类似的 EOF 问题。其实有2个问题:

  1. input()在 Python3 和Python2 中使用raw_input()
  2. 如果您知道输入的确切数量,您可以使用 N 个 for 循环来处理每个input(). 但是,困难在于您不知道将有多少输入。在这种情况下,您将不得不使用sys.stdin.readlines()将它们转换为列表,然后使用 for-each 循环。

以下代码来自https://www.hackerrank.com/challenges/30-dictionaries-and-maps/的“社论”

import sys 

# Read input and assemble Phone Book
n = int(input())
phoneBook = {}
for i in range(n):
    contact = input().split(' ')
    phoneBook[contact[0]] = contact[1]

# Process Queries
lines = sys.stdin.readlines()  # convert lines to list
for i in lines:
    name = i.strip()
    if name in phoneBook:
        print(name + '=' + str( phoneBook[name] ))
    else:
        print('Not found')
于 2017-08-01T19:20:36.293 回答
0

我不知道您到底想通过您的代码实现什么,但是由于该行inp=input()尝试将字符串作为输入,而它被设计为采用int,floatstring entered with quotesin ,因此您遇到了错误python 2.7。而是使用raw_input()将完整的行作为字符串输入,然后将其拆分space为分隔符。

我按照您提供的链接进行操作,我发现给定的问题需要使用dictionaries. 因此,无需附加nameand number,只需将其存储dictionary为一key-value对,对于每个查询,只需检查该键是否存在于字典中。如果不是,则打印Not found,否则打印键及其对应的值。这是供参考的代码:

import sys
input_2=""
n = input()
m=0
l=0
array=[]
main_array={}
for i in range (0,n):
    inp=raw_input()
    array=(inp.split())
    main_array[array[0]] = array[1]
for i in range(0,n):
    take = raw_input()
    if take in main_array :
        print take+"="+main_array[take]
    else :
        print "Not found"

希望这可以帮助 !

于 2016-11-27T13:18:37.060 回答