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

VS Code中Python input()函数交互异常问题求助

问题原因与VS Code设置调整方案

你的测试代码

even_or_not_number = input("Enter a number: ")
even_or_not_number = int(even_or_not_number)
even_test = even_or_not_number % 2
print(even_test == 0)

报错信息

>>> even_or_not_number = input("Enter a number: ")
Enter a number: even_or_not_number = int(even_or_not_number)
>>> even_check = even_or_not_number % 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>> print(even_check == 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'even_check' is not defined

这种代码合并、无法正常交互的问题,核心是VS Code的代码运行方式或相关设置导致Python交互环境(REPL)的输入输出流混乱,以下是具体排查点:

  • 错误的运行方式:如果是在VS Code的Python交互式窗口(REPL)中逐行输入/粘贴代码,或者直接在终端的Python交互环境中执行代码,就会出现input()提示和下一行代码被合并的情况。
    解决:右键点击编辑器空白处,选择「Run Python File in Terminal」,或点击编辑器右上角的运行按钮,直接执行整个脚本文件,而非逐行在REPL中运行。

  • 终端集成设置异常:检查VS Code的python.terminal.executeInFileDir设置,确保该选项处于开启状态(默认开启)。若关闭可能导致终端运行环境的路径或交互模式异常。
    操作:按下Ctrl+,打开设置面板,搜索该选项确认状态。

  • REPL智能发送设置冲突:VS Code的Python扩展默认开启了python.REPL.enableREPLSmartSend,该功能会尝试批量发送代码块到REPL,但如果代码换行格式异常,可能引发代码合并问题。
    操作:打开设置面板搜索该选项,尝试关闭后重新在REPL中逐行测试代码。

  • 终端类型兼容性问题:默认终端(如Windows的PowerShell、Mac/Linux的zsh)偶尔会和Python交互环境的输入输出产生冲突。
    操作:在VS Code终端面板的下拉菜单中切换终端类型(比如Windows切到Command Prompt),重试运行代码。

你的代码本身无问题,IDLE能正常运行是因为其REPL对输入等待的处理更适配这种逐行执行场景,切换为VS Code中运行整个脚本的方式即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:22:25