Python 为什么标准输入()会导致EOF错误
当我在我的代码中遇到以下问题时,我正在解决HackerRank上的一个问题。我在我的Python(2.7.10)空闲版上测试了它,它工作得很好。但它在HackerRank上显示了以下错误:Python 为什么标准输入()会导致EOF错误,python,eoferror,Python,Eoferror,当我在我的代码中遇到以下问题时,我正在解决HackerRank上的一个问题。我在我的Python(2.7.10)空闲版上测试了它,它工作得很好。但它在HackerRank上显示了以下错误: Traceback (most recent call last): File "solution.py", line 13, in <module> input_2=input() EOFError: EOF when reading a line 我不知道为什么HackerRan
Traceback (most recent call last):
File "solution.py", line 13, in <module>
input_2=input()
EOFError: EOF when reading a line
我不知道为什么HackerRank引擎会出现这个错误。
谢谢我不知道您到底想通过代码实现什么,但是由于行
inp=input()
,它试图以字符串作为输入,而它的设计是以int
、float
或字符串作为输入,在python 2.7
中用引号输入。使用raw_input()
将整行作为字符串输入,然后使用空格作为分隔符拆分
我遵循了您提供的链接,我发现给定的问题需要使用词典解决。因此,不必附加名称
和编号
,只需将其作为键值
对存储在字典中,对于每个查询,只需检查字典中是否存在该键。如果未找到,则打印未找到
,否则打印键及其对应值。以下是代码供参考:
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"
希望这有帮助 我在HackerRank中编写代码时遇到了类似的EOF问题。实际上,有两个问题:
在Python3中使用input()
,在Python2中使用raw\u input()
如果您知道输入的确切数量,则可以使用N-number for循环来处理每个input()
。然而,困难在于你不知道有多少输入。在这种情况下,必须使用sys.stdin.readlines()
将它们转换为列表,然后为每个循环使用一个
以下代码摘自
在在线平台上,通常有一个文本框,您可以在其中输入内容,而不是像在终端中那样进行输入。这意味着您尝试读取的输入内容比提供的多。给我们一个输入的描述,或者只是一个问题的链接。你使用的是哪个版本的python?您使用2.7进行了测试,但您应该在2.7上使用raw\u input()
。我尝试在hackerrank上使用raw\u input,但没有效果。感谢您发布此消息-这是最好的答案。(他们还在HackerRank使用这个问题)
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"
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')