在Mac上的Visual Studio Code上缩进错误(再次)

时间:2019-01-20 12:46:50

标签: python python-2.7 visual-studio indentation

我是新手,试图在Mac上的 Visual Stodio代码上使用Python(通过Anaconda通过2.17.15)。我有以下简单代码:

def function(x):
    y = x + 2
    return y

此代码给我带来了常见的麻烦,一个缩进错误

   return y
    ^
IndentationError: unexpected indent
>>>     return y
  File "<stdin>", line 1
    return y
    ^
IndentationError: unexpected indent
>>>

不用说Jupyter或Spyder对此没有问题。我检查了VSC选项卡上是否有4个空格。所有类似的问题都与此有关,但我无法解决。

其他,Python的内置函数可以正常工作。

由于我不知道如何解决这个问题,请给我一些帮助或提示。

更新

再次安装Python3这个简单的代码并不能在Sublime上运行,但仍然不能在VS Code上运行。我仍然在VS Code中遇到相同的错误。

UPDATE2

因此,另一个更新。如果我从return更改为print,而不是使用shift命令调试并运行代码,那么它将起作用。

知道发生了什么吗?

2 个答案:

答案 0 :(得分:1)

这看起来像是因为您正在使用Shift + ENTER运行代码。

VS Code对Shift_ENTER具有以下 2 绑定:

enter image description here

我相信您会看到其中的第二个,即“在Python终端中运行选择/行。我怀疑您专注于return y行,因此它仅运行代码。

如果在VS Code中使用“运行代码”命令而不是Shift + Enter,则应该可以正常运行:

enter image description here

您可能会想:“好吧...所以,如果我选择所有代码,那将起作用,对吗?”我同意...这感觉应该可行。但是,我看到了类似的问题。我将看看是否可以找出原因,但是目前您可以在VS Code中使用“运行代码”命令,这将完成您想要的事情。如果突出显示要运行的代码,则将限制执行的代码。

运行代码可以通过Ctrl+Alt+N

执行

似乎是这个问题(选择的代码无法通过Shift + ENTER正常运行)是一个错误,正在这里跟踪:https://github.com/Microsoft/vscode-python/issues/2837

一种解决方法(不理想)是在未缩进的函数之前/之后添加代码,然后也选择并执行这些行:

print("this...")

def function(x):
    y = x + 2
    return y

print("...now works if you select all these lines and Shift+ENTER!")

答案 1 :(得分:1)

这是python extension中的错误,您需要以交互方式运行代码块。

因此在下面的示例代码中:

for lastRun in list(d_RunPanelsPresent.keys()): 

    # some indented commands
    logFile = f"/nexusb/Novaseq/{lastRun}/logPPscript.txt"
    if not os.path.isfile(logFile):
        with open(logFile, 'w+') as f:
            pass
    else:
        pass

如果我突出显示如下(请注意光标所在的位置):

enter image description here

我会得到一个错误。

解决方案是从代码编辑器的最左侧突出显示代码,如下所示:

enter image description here

这100%的时间对我有用。