You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中Jupyter Notebook使用print与input时随机漏输出行求助

VS Code Jupyter Notebook中print()与input()混用输出延迟问题的解决办法

问题说明

在VS Code的Jupyter Notebook里同时使用print()和input()时,会出现输出内容随机延迟显示的情况:比如循环中前一次的print结果要等下一次输入完成后才会出现,甚至连续多行会积压到后续操作后才批量显示。清理VS Code缓存(路径:C:\Users\<user_name>\AppData\Roaming\Code)后问题仍存在。

复现代码

无限循环示例

i = 0
print('start')
while True:
    i += 1
    print(f'iteration {i-1}')
    if input(f'input {i} - stop? (y)') == 'y':
        break
print('stop')

运行时会出现“iteration 6”在输入7后才显示、“iteration 8”在触发break的输入9后才显示的情况,无循环的代码也会出现类似延迟。

有限循环验证示例

x = 0
i = 0
print('start')
while i < 9:
    i += 1
    x = input(f'input {i}:')
    print(f'iteration {i} | input {x}')
print('stop')

运行时“iteration 2”在输入3后才显示,“iteration 3”“iteration 4”在输入4后才显示。

可行解决办法

  • 强制刷新输出缓冲区:给每个print()添加flush=True参数,强制立即输出内容,避免缓冲区积压。修改后的代码示例:
    i = 0
    print('start', flush=True)
    while True:
        i += 1
        print(f'iteration {i-1}', flush=True)
        if input(f'input {i} - stop? (y)') == 'y':
            break
    print('stop', flush=True)
    
  • 切换运行终端:在VS Code的Jupyter扩展设置中,将“Run Using”选项从“Interactive Window”改为“Terminal”,通过终端执行代码可避免输出延迟。
  • 更新软件版本:确保VS Code和Jupyter扩展都是最新版本,旧版本的兼容性bug可能导致该问题,更新后大概率修复。
  • 更换Python环境:尝试切换到不同的Python解释器(比如conda虚拟环境),部分环境的标准输出缓冲区配置可能引发此问题。

内容的提问来源于stack exchange,提问作者jjroth89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:26:15