【问题标题】:Cannot Print Out of For Loop无法打印出 For 循环
【发布时间】:2021-01-26 07:21:08
【问题描述】:
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) 

在这段代码中,每当我尝试从for loop 中打印list1 时,它都不会打印,也不会给我任何错误。它只是在HackerRank website 上显示 EOF,而在 VS 代码中,在我提供输入后它并没有真正给出任何输出

有人知道为什么吗?

感谢您的宝贵时间 :)

【问题讨论】:

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


    【解决方案1】:

    您正在使用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) 
    

    【讨论】:

      【解决方案2】:

      如果输入是 3,那么N+1 是 4。

      range(N+1) 将是 range(4)。这是0, 1, 2, 3 - 4 项。

      即循环运行 4 次。但是 stdin 上只有 3 行输入。

      这就是错误告诉你的。它期待一些输入,但它得到了EOF - 文件结束。

      您应该只使用 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) 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多