python Hackerrank 中的 EOF 错误
EOF Error in python Hackerrank
试图解决一个问题,但 Hackerrank 的编译器在解析时不断抛出错误 EOFError:不知道我哪里错了。
#!usr/bin/python
b=[]
b=raw_input().split()
c=[]
d=[]
a=raw_input()
c=a.split()
f=b[1]
l=int(b[1])
if(len(c)==int(b[0])):
for i in range(l,len(c)):
d.append(c[i])
#print c[i]
for i in range(int(f)):
d.append(c[i])
#print c[i]
for j in range(len(d)):
print d[j],
我也试过 try catch 来解决它,但没有得到任何输入。
try:
a=input()
c=a.split()
except(EOFError):
a=""
输入格式是2个间隔整数开头,然后是数组
追溯错误是:
Traceback (most recent call last):
File "solution.py", line 4, in <module>
b=raw_input().split()
EOFError: EOF when reading a line
我不知道,但提供自定义输入并编译它让我参与进来!甚至没有做任何改变就通过了所有案例。
有几种方法可以处理 EOF 错误。
1.throw 异常:
while True:
try:
value = raw_input()
do_stuff(value) # next line was found
except (EOFError):
break #end of file reached
2.check 输入内容:
while True:
value = raw_input()
if (value != ""):
do_stuff(value) # next line was found
else:
break
3。使用 sys.stdin.readlines()
将它们转换为列表,然后使用 for-each 循环。更详细的解释是
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')
我遇到了同样的问题。这就是我注意到的。我还没有看到您的 "main" 函数,但 Hackerrank 已经为我们读入了所有数据。我们不必读入任何东西。例如,这是一个函数 def doSomething(a, b):
a 和 b,无论它是数组还是整数,都会为我们读入。我们只需要专注于我们的主要代码,而不用担心阅读。最后还要确保你的函数 return()
是什么,否则你会得到另一个错误。 Hackerrank 也负责打印最终输出。他们的代码示例和常见问题解答有点误导。 这是我根据测试得出的结论。您的测试可能会有所不同。
这是因为您的函数需要输入,但未提供。提供自定义输入并尝试编译它。它应该有效。
HackerRank 中主要可见代码下方隐藏了一些代码。
您需要扩展该代码(观察出现错误的行号并通过扩展检查该行)代码并且这些代码有效,您需要将顶部可见代码与隐藏代码匹配。
我的情况如下所示:
regex_integer_in_range = r"___________" # Do not delete 'r'.
regex_alternating_repetitive_digit_pair = r"__________" # Do not delete 'r'.
我只是像下面这样填写了上面的空白,它使用给定的隐藏代码工作正常:
regex_integer_in_range = r"^[0-9][\d]{5}$" # Do not delete 'r'.
regex_alternating_repetitive_digit_pair = r"(\d)(?=\d)" # Do not delete 'r'.
试图解决一个问题,但 Hackerrank 的编译器在解析时不断抛出错误 EOFError:不知道我哪里错了。
#!usr/bin/python
b=[]
b=raw_input().split()
c=[]
d=[]
a=raw_input()
c=a.split()
f=b[1]
l=int(b[1])
if(len(c)==int(b[0])):
for i in range(l,len(c)):
d.append(c[i])
#print c[i]
for i in range(int(f)):
d.append(c[i])
#print c[i]
for j in range(len(d)):
print d[j],
我也试过 try catch 来解决它,但没有得到任何输入。
try:
a=input()
c=a.split()
except(EOFError):
a=""
输入格式是2个间隔整数开头,然后是数组
追溯错误是:
Traceback (most recent call last):
File "solution.py", line 4, in <module>
b=raw_input().split()
EOFError: EOF when reading a line
我不知道,但提供自定义输入并编译它让我参与进来!甚至没有做任何改变就通过了所有案例。
有几种方法可以处理 EOF 错误。
1.throw 异常:
while True:
try:
value = raw_input()
do_stuff(value) # next line was found
except (EOFError):
break #end of file reached
2.check 输入内容:
while True:
value = raw_input()
if (value != ""):
do_stuff(value) # next line was found
else:
break
3。使用 sys.stdin.readlines()
将它们转换为列表,然后使用 for-each 循环。更详细的解释是
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')
我遇到了同样的问题。这就是我注意到的。我还没有看到您的 "main" 函数,但 Hackerrank 已经为我们读入了所有数据。我们不必读入任何东西。例如,这是一个函数 def doSomething(a, b):
a 和 b,无论它是数组还是整数,都会为我们读入。我们只需要专注于我们的主要代码,而不用担心阅读。最后还要确保你的函数 return()
是什么,否则你会得到另一个错误。 Hackerrank 也负责打印最终输出。他们的代码示例和常见问题解答有点误导。 这是我根据测试得出的结论。您的测试可能会有所不同。
这是因为您的函数需要输入,但未提供。提供自定义输入并尝试编译它。它应该有效。
HackerRank 中主要可见代码下方隐藏了一些代码。
您需要扩展该代码(观察出现错误的行号并通过扩展检查该行)代码并且这些代码有效,您需要将顶部可见代码与隐藏代码匹配。
我的情况如下所示:
regex_integer_in_range = r"___________" # Do not delete 'r'.
regex_alternating_repetitive_digit_pair = r"__________" # Do not delete 'r'.
我只是像下面这样填写了上面的空白,它使用给定的隐藏代码工作正常:
regex_integer_in_range = r"^[0-9][\d]{5}$" # Do not delete 'r'.
regex_alternating_repetitive_digit_pair = r"(\d)(?=\d)" # Do not delete 'r'.