我是一名新手,尝试在 Mac 上的 Visual Stodio Code 上使用 Python(2.17.15,通过 Anaconda)。我有以下简单的代码:
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 中仍然遇到同样的错误。
如果我从
return
更改为print
,而不是使用shift命令调试并运行代码,那么它就可以工作了。
知道发生了什么事吗?
这看起来是因为您使用 Shift+ENTER 运行代码。
VS Code 具有以下 2 Shift_ENTER 绑定:
我相信您看到的是其中的第二个,它显示“在 Python 终端中运行选择/行”。我怀疑您的注意力集中在
return y
行上,因此它只运行那一行代码。
如果您在 VS Code 中使用“运行代码”命令而不是 Shift+ENTER,您应该会看到它工作正常:
您可能会想“好吧……那么如果我选择所有代码,这就会起作用,对吗?”我同意......这感觉应该有效。但是,我看到了类似的问题。我会看看是否可以找出原因,但目前您可以使用 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!")
这是来自 python 扩展的错误,您需要在交互模式下运行代码块。
所以在下面的示例代码中:
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
如果我如下突出显示(注意光标在哪里):
我会收到错误。
解决办法是在代码编辑器最左边突出显示代码,如下图:
这对我来说 100% 有效。
忘记函数定义末尾的分号会产生相同的错误。