如何在不使用制表符的情况下缩进 Python 代码块

3

我正在学习Python,并需要了解如何缩进一段代码块而不使用制表符(因为据我所读,不应使用制表符)。

例如:

在简单的打印函数中

def test(string):
    print(string)
    print("'" + string + "'")

test('test')

如果现在,我想把打印函数放在一个if语句中。
def test(string):
    if len(string) > 2:
        print(string)
        print("'" + string + "'")

test('test')

如何不使用“Tab”或单击每行并插入4个空格,缩进两个打印语句?无论是在geany、ipython还是notepad++中,我都习惯于选择需要移至右端的所有行,然后按tab。我想按照PEP8风格指南从Python介绍开始进行设置。 我担心的不是这个特定示例,而是如果我有一个代码块想要左右移动很多行。谢谢,伊万。

5
我认为你只是想要一个好的Python集成开发环境,希望它可以(有望)为你解决这个问题。 - TheSoundDefense
PyCharmPTVS 是我喜欢的两个。 - James Mertz
在我的编辑器中:选择两行,按TAB键,完成。编辑器知道我使用空格进行缩进,并将缩进增加4个空格。 - Martijn Pieters
感谢大家的评论和回答。 - ivan7707
我可以问一下,在编程中使用制表符而不是空格有什么问题吗?为什么不应该使用,就像你在问题中写的那样? - OMA
3个回答

2
这取决于您使用的文本编辑器。我使用的是Notepad++,它是您提到的其中之一,并且有一个选项可以使用空格代替制表符。因此,对于.py文件,我只需启用该选项,然后按Tab键就可以像您习惯的那样缩进一个块(并使用Shift-Tab取消缩进)。
转到设置>首选项>制表符设置,从右侧列表中选择“python”,并勾选“替换为空格”复选框。其他提供相同功能的文本编辑器可能会各自有自己的启用方法,并且具有使其针对特定语言的方式。
请注意,按Tab键更改所选内容的缩进只是UI约定,尽管很常见。例如,在记事本中,突出显示文本时按Tab键不起作用,行为与键入任何其他内容相同:将所选内容替换为制表符。如果您使用的是记事本,则我非常确定答案是“不可能”。如果您使用多个不同的编辑器,则不幸的是,您将不得不逐个调查每个编辑器。

2

正如您所提到的,PEP8 建议每个缩进级别使用四个空格。许多文本编辑器允许您设置制表符被一定数量的空格替换。因此,在许多情况下,仍然可以在 Python 中使用制表符进行编程,只需确保它被替换为四个空格即可。


1
我个人使用Sublime Text,似乎有定制选项来设置Tab大小: { "tab_size": 4, "translate_tabs_to_spaces": true } 在Packages/User/Preferences.sublime-settings中。也许值得尝试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接