无法打印出 For 循环

时间:2021-01-26 07:21:08

标签: python python-3.x list for-loop

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 代码中它在我提供输入后并没有真正给出任何输出

有人知道为什么吗?

感谢您的时间:)

HackerRank outputVSS code Output

2 个答案:

答案 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)