Python中有格式化的快捷键吗?
在我们用Matlab写完代码后,可以使用 ctrl+A+ctrl+I
和 ctrl+A+ctrl+J
来格式化我们的代码(比如对齐注释、循环等)。在Python中有没有类似的功能或者有用的快捷键呢?
另外,就像我们可以用向上箭头来复制Matlab中之前的命令历史一样,Python中有没有办法或者快捷键可以做到这一点呢?
谢谢!
3 个回答
如果你使用Python自带的IDLE(在Windows上自带,Linux和Unix系统也很容易找到),大部分格式化的工作都会自动帮你完成。比如,IDLE会自动处理循环和其他代码块的缩进,只要在代码后面加个:
就行。这比在普通的文本编辑器里写Python脚本要好得多,比如gedit、emacs、vim或者记事本,特别是你只需要按F5就能运行脚本。
至于之前的命令,Python的命令行界面有个最大的缺点,就是你不能按上箭头键来获取上一个命令。不过,如果你使用的是没有图形界面的命令行(在Windows的命令提示符或者Unix的终端里,输入python
),你就可以用命令回忆功能来获取上一个命令。
如果你使用emacs,那么:
你可以在一行的任何地方按一下 tab 键,这样它会根据前一行的缩进来正确调整这一行的缩进(假设你正在继续当前的代码块)。
你可以选中一段文本,然后按 C-c < 来把文本块向左移动,按 C-c > 来把文本块向右移动。
这两个功能是我经常使用的。我相信其他编辑器能做到的,emacs 也能做到;)
总的来说,格式化 Python 代码对程序来说是个难题,因为缩进会严重影响代码的含义。
想想看:
for i, item in enumerate(lst):
if i % 2:
sum += i * int(item)
return sum
还有:
for i, item in enumerate(lst):
if i % 2:
sum += i * int(item)
return sum
你真的希望你的编辑器来决定你想表达的是哪一个吗?
Python是一种编程语言,而不是一个集成开发环境(IDE),所以它本身没有什么“快捷键”之类的东西。每个开发环境可能提供不同的功能。你似乎把GNU Readline(通常在很多Python程序中使用的简单文本模式解释器环境里)当成了“Python的一部分”,但这其实是个误解;readline
是一个通用的库,用于命令行环境中的交互式输入,而Python只是使用它的众多程序之一。另一个通常和Python一起打包的环境是IDLE
,这是一个图形用户界面(GUI),当然它的编辑功能和其他环境完全不同。还有很多第三方环境,比如“Wing IDE”,每个环境提供的编辑功能和工具都大相径庭。
总结一下:你的问题关于Python本身并没有比问C、Java或其他编程语言更有意义。不要让那些通常是专有的、带有集成开发环境的编程语言在这个问题上让你感到困惑!