如何在不使用制表符的情况下缩进Python代码块
我刚开始学习Python,想知道怎么给一段代码加缩进,而不使用Tab键(因为我听说不应该用Tab)。
举个例子:
在一个简单的打印函数中
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代码。
我关心的不是这个特定的例子,而是如果我有一个很长的代码块,想要整体向左或向右移动该怎么办。
谢谢,
伊凡
3 个回答
我个人使用的是Sublime Text,这个软件里好像有一个选项可以自定义制表符(Tabs):
{ "tab_size": 4, "translate_tabs_to_spaces": true }
这个设置可以在Packages/User/Preferences.sublime-settings文件里找到。也许可以试试看这个方法。
正如你提到的,PEP8建议每个缩进级别使用四个空格。很多文本编辑器都允许你设置,把制表符(Tab)替换成一定数量的空格。所以在很多情况下,使用制表符来写Python代码也是可以的,只要确保它被替换成四个空格就行。
这要看你用的是什么文本编辑器。我用的是Notepad++,这是你提到的编辑器之一,它有一个选项可以用空格代替制表符。所以我只需要在.py文件上启用这个选项,然后就可以像平常一样按下Tab键来缩进代码块(按Shift+Tab可以取消缩进)。
你可以去设置 > 首选项 > 制表符设置,从右边的列表中选择“python”,然后勾选“用空格替代”。其他提供相同功能的文本编辑器可能也有各自的开启方法,以及各自的语言特定设置。
要注意的是,按Tab键来改变选中内容的缩进只是一个用户界面的习惯,虽然这个习惯很常见。比如在Notepad中,按Tab键时如果文本被选中,它的行为和输入其他任何内容一样:会用一个Tab替换掉选中的内容。如果你用的是Notepad,我可以肯定地说,答案是“这不可能”。如果你使用很多不同的编辑器,那你可能需要逐个去了解它们的设置。