为什么标准输入()会导致EOF错误
当我在代码中遇到以下问题时,我正在解决HackerRank上的问题。我在Python(2.7.10)IDLE上测试了它,并且它工作正常。但它表现出对HackerRank以下错误:为什么标准输入()会导致EOF错误
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引擎止跌回升。 感谢
我不知道什么是你究竟想通过代码来实现,但你是由于线路inp=input()
,它试图把一个字符串作为输入得到一个错误,而它的设计采取int
,float
或string entered with quotes
in python 2.7
。使用raw_input()
代替将完整行作为字符串输入,然后将其与space
分隔为分隔符。
我跟着你提供的链接,我看到给定的问题需要使用dictionaries
来解决。因此,不要附加name
和number
,只需将它作为key-value
对存储在dictionary
中,并且对于每个查询,只需检查密钥是否存在于字典中。如果不是,则打印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"
希望这有助于!
非常感谢! –
没问题,请将答案标记为已接受。 @YajurTayal – Jarvis
我在HackerRank中编码时遇到过类似的EOF问题。其实有两个问题:
- 在Python3中使用
input()
而在Python2中使用raw_input()
。 - 如果您知道确切的输入数量,您可以使用N数for-loop来处理每个
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')
在网络平台通常有一种在其中放置文本输入框,它没有这样做,因为它是在你的终端。 –
这意味着您尝试读取比提供的更多的输入行。给我们一个输入的描述,或者只是一个问题的链接。 –
https://www.hackerrank.com/challenges/30-dictionaries-and-maps?h_r=next-challenge&h_v=zen –