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

PyCharm运行多行input转int报ValueError但命令行正常如何解决

问题背景
  • 运行环境:PyCharm 2022.1.1
  • 测试代码:
a = int(input())
b = int(input())
print(a)
print(b)
  • 异常表现:运行代码时依次输入7按回车、输入10按回车,输入内容无多余空格,执行到第二行b = int(input())语句时触发报错:ValueError: invalid literal for int() with base 10: ''。同一份代码保存为本地文件后通过命令行执行可正常运行。
故障原因

这是PyCharm 2022.1.1版本内置运行控制台的已知bug,和代码本身逻辑无关:该版本控制台处理连续input()调用时,第一次回车提交输入后,没有正确阻塞等待第二次用户输入,会直接把空字符串传递给第二次input()的返回值,最终导致int类型转换失败。命令行运行时调用的是系统原生Python交互环境,不存在这个缓冲区处理bug,所以可以正常运行。

解决方法
  • 方案1:升级PyCharm版本。将PyCharm升级到2022.1.2及以上的正式版本,JetBrains已经在后续小版本更新中修复了该控制台输入bug,升级后无需修改代码即可正常运行。
  • 方案2:临时代码规避。如果暂时不想升级IDE,可以在两次输入读取之间添加极短的缓冲区等待延时,修改后代码如下:
import time
a = int(input())
time.sleep(0.1)
b = int(input())
print(a)
print(b)

该方案通过短延时给控制台足够时间刷新输入状态,避免提前读取到空值。

  • 方案3:绕开内置控制台。直接使用系统命令行/终端运行对应Python脚本,跳过存在bug的PyCharm内置运行控制台即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:31:05