如何在python中编辑缩进代码?

时间:2017-09-26 02:20:22

标签: python python-2.7 loops scope indentation

有点新手python,来自C / C ++开发经验。不要咆哮,但缩进和间距的东西有点成为我生命的祸根。所以这就是问题所在。获取此代码段,按顺序键入,永不删除或在现有代码之间插入任何编辑。

while condition:
    line 1
    line 2

line3 #outside the loop

工作正常。但是,假设我想在循环中添加另一条指令。 (在Linux上使用jupyter notebook和sublime进行编辑)所以我将该行添加为

while condition:
    line 1
    line 1.5
    line 2

line3 #outside the loop

那是问题开始的时候。无论我尝试什么,我都无法让它发挥作用。它给了我像

这样的错误
  

第2行       ^   IndentationError:意外缩进

或根据具体情况而有所不同。它似乎以某种方式在一个庞大而复杂的嵌套块结构中添加一条线,以某种方式完全混淆了整个事物。

我没有手动插入空格/缩进,我只是让我的编辑器来处理。当我按Enter键时,光标向下移动到下一行,缩进与前一行相同的级别(除非上一行以结尾,在这种情况下它会添加另一个缩进)。 / p>

当我需要结束 while 循环或 if 阻止时,我只是按下退格键来缩回一个缩进级别。通过眼睛检查,块看起来完全没问题,但不知道解释器如何看待它。

任何帮助,我做错了什么,或者至少有什么好的做法可以避免这个问题?特别是,在现有嵌套块中添加甚至一行似乎几乎不可能。

2 个答案:

答案 0 :(得分:2)

您可以混合使用空格和制表符缩进。您可以使用制表符或空格,但不能同时使用两者。但是,建议使用space作为PEP8 Python样式指南

如果您使用的是Visual Studio Code,则可以安装pylint扩展名以轻松检测此类错误。像这样:

pylint output

答案 1 :(得分:1)

Sublime文本编辑器默认使用标签进行缩进。如果您最初使用空格进行缩进并稍后进行编辑,则会混合使用空格和制表符进行缩进,这是导致缩进错误的原因。这是因为Python 3不允许混合使用制表符和空格来缩进。

PEP8 Python Style Guide建议每个缩进级别使用4个空格。返回并用空格替换选项卡,代码将正常工作。

(PS:改变Sublime的默认缩进设置很容易)