【问题标题】: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)