首页 > 解决方案 > Python 在多次获取输入并打印输入后意外停止 while 循环

问题描述

好的,当我遇到这个问题时,我第一次尝试了 Google Kick Start 问题。出于某种原因,当我同时输入多行输入然后在处理每个输入之间打印时,它会使循环永远运行,直到我输入新的输入。这种情况有简单的解释吗?

x = int(input())
print('\nx =', x)
for i in range(x):
    newInput = input()
    print(newInput)

如果我把输入作为:

3
1
2
3

然后输出是:

x = 3
1
2

然后我必须再次按“输入”才能看到

3

为什么程序需要第二个输入才能3打印剩余的输入?奇怪的是,当我在 IDE 上使用带有断点的调试器模式时,这个问题就消失了(不再需要再次按“输入”)。

标签: python

解决方案


当您调用时,Python 会等待换行符input()。如果您复制粘贴最后没有换行符的输入数据,则它不知道最后一行是完整的,但该行之前的行以换行符结尾,所以它会这样做。确保您复制粘贴的内容末尾包含换行符。


推荐阅读