if __name__ == '__main__':
N = int(input())
list1 = []
for data in range(N+1):
commands, index, number = input().split()
if commands == 'insert':
list1.insert(int(index),int(number))
print(list1)
在这段代码中,每当我尝试从 list1
打印 for loop
时,它都不会打印,也不会给我任何错误。它只是在 HackerRank website 上显示 EOF 并且在 VS 代码中它在我提供输入后并没有真正给出任何输出
有人知道为什么吗?
感谢您的时间:)
答案 0 :(得分:2)
您通过使用 range(N+1)
将循环再迭代一次,因此该进程正在等待另一个输入并在一段时间后超时。
修改代码如下:
if __name__ == '__main__':
N = int(input())
list1 = []
for data in range(N):
commands, index, number = input().split()
if commands == 'insert':
list1.insert(int(index),int(number))
print(list1)
答案 1 :(得分:1)
如果输入为 3,则 N+1
为 4。
range(N+1)
那么就是 range(4)
。这是 0, 1, 2, 3
- 4 项。
即循环运行 4 次。但是stdin上只有3行输入。
这就是错误告诉你的。它期待一些输入,但它得到了 EOF
- End of File。
您应该只使用 range(N)
或 range(1, N+1)
- 这将导致循环运行 3 次。
if __name__ == '__main__':
N = int(input())
list1 = []
for _ in range(N):
commands, index, number = input().split()
if commands == 'insert':
list1.insert(int(index),int(number))
print(list1)