Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么标准输入()会导致EOF错误_Python_Eoferror - Fatal编程技术网

Python 为什么标准输入()会导致EOF错误

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

当我在我的代码中遇到以下问题时,我正在解决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
我不知道为什么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')