【问题标题】:Function recall working in other IDEs but not VS Code函数调用在其他 IDE 中工作,但不适用于 VS Code
【发布时间】:2021-12-01 12:37:43
【问题描述】:

我写了一些非常简单的代码:

def yo():
    text = "hi there"
    print(text) 
    print(text) 
  
  
yo()

我在 Spyder 和在线编译器中运行此程序没有错误。显然它吐出来了:

hi there
hi there

但是当我使用“在终端中运行 Python 文件”播放按钮在 VS Code 终端中运行它时,我得到了

"SyntaxError: invalid syntax" 

对于第 1 行(def 行)。

当我在终端中输入yo() 时,我得到了预期的输出:

hi there
hi there

为什么我会得到与这些不同的结果?我在 VS Code 中使用“播放”按钮执行了其他简单的 Python 部分,没有出现问题。不用说我已经安装了 python 扩展和解释器。

更新:我重新启动了 VS Code,现在文件运行没有问题。我猜“您是否重新启动计算机”确实有时确实可以解决问题...

【问题讨论】:

  • 您在第一行似乎有几个前导空格。这确实是一个语法错误;缩进 在 Python 中意味着什么
  • 抱歉,这只是复制和粘贴错误。这些前导空格实际上不在源代码中。我已经编辑了我的 OP 以显示 VS Code 中的正确版本
  • 你在 VS Code 终端运行这个?您应该尝试在其他命令行工具或终端中运行,并且应该得到相同的错误。这不应该是 Visual Studio Code 的特定问题。在最近的带有 Python 扩展的 Visual Studio Code 中,有一些更简单的方法可以运行 Python 脚本,@Pythonlearner 已经介绍了这些方法
  • @rustyhu 是的,我在 VS Code 终端中运行了它。当我在 Python 终端本身中运行它时,我得到召回行(最后一行)的无效语法错误: yo() 这与 VS Code 所说的不同的行有语法错误,当我在Spyder 或programiz.com/python-programming/online-compiler 工作正常

标签: python visual-studio-code spyder


【解决方案1】:

正在定义您的函数 - yo(),但 Visual Studio Code 不知道如何运行它。要解决此问题,请尝试添加 if __name__ == '__main__': 子句。这是您的完整代码:

def yo():
    text = "hi there"
    print(text) 
    print(text) 

if __name__ == '__main__':
    yo()

Here 是关于if __name__ == '__main__': 的更多信息

如果这不能解决问题,您肯定有一些格式问题或 Visual Studio Code 的一些不同设置。您可以执行以下操作。

  1. 确保您运行的是正确的文件
  2. 删除所有代码并再次粘贴
  3. 重置您的 Visual Studio Code 设置
  • 确保 Tab 的设置为 4 个空格。
  • 在设置中禁用terminal.integrated.inheritEnv

如果一切都失败了,试试这些:

您应该在终端中使用exit() 命令来结束python 会话。然后重新运行,看看是否有任何效果。

使用“不调试就开始”运行您的代码。

【讨论】:

  • 这给了我同样的错误。我会尝试弄乱格式,但这段代码实际上是如此简单......任何不在第一行的内容都会缩进一个标签。我是 Python 新手,但我在其他语言方面经验丰富,所以我非常怀疑像空格这样简单的东西会逃脱我对代码的检查
  • @Andrew 经过更多研究后,我发现其他人也有同样的问题。这似乎是VScode的一个错误。看看我更新的答案。
  • 如果这是一个错误,我不知道为什么我收到 -3 的有效问题...我编辑了我的问题,因为我发现另一种方法正在工作。您对此次更新有何看法?
  • 更新:我重新启动了 VS Code,现在它突然可以工作了。相当加重。感谢您的帮助!
  • 您在答案中的第一行是错误的。 Python 中的每一行总是被执行,if __name__ == '__main__': 用于防止在您导入文件时执行某些代码。你的回答不是问题的解决方案,标签设置不重要
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 2018-11-30
  • 2019-07-20
  • 2019-05-10
相关资源
最近更新 更多