python - 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 会等待换行符input()
。如果您复制粘贴最后没有换行符的输入数据,则它不知道最后一行是完整的,但该行之前的行以换行符结尾,所以它会这样做。确保您复制粘贴的内容末尾包含换行符。
推荐阅读
- webpack - webpack 4,ignore-loader返回[object object],以及如何忽略图像路径,即使它们被破坏?
- datepicker - AEM:在coral3对话框中带有时区选择器的日期选择器
- python-3.x - 使用字典python删除和添加拆分列表
- node.js - 按 mongo 聚合中无序的字符串数组的内容进行分组
- git - 将文件从一个存储库复制到另一个存储库及其历史记录
- assembly - 打印CR0寄存器的内容
- php - PHP 中的 file_put_contents() 内存泄漏
- linux - 无法从 Linux 和 Mac SSH 到域中的 cygwin
- mongodb - 比较 MongoDB 集合
- c# - 在发布模式下发布后,带有 net5.0(托管)的 Blazorwasm 抛出 404 和 Fallback {*path:nonfile}