当我在我的代码中遇到以下问题时,我正在解决 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
Run Code Online (Sandbox Code Playgroud)
我输入了以下代码:
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")
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这个错误出现在 HackerRank 引擎中。谢谢
我不知道您到底想通过代码实现什么目标,但是由于该行inp=input()尝试将字符串作为输入,而它被设计为采用int, float, 或string 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"
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 !
| 归档时间: |
|
| 查看次数: |
17208 次 |
| 最近记录: |