標籤:

Python 在改代碼時怎麼處理縮進問題?

比如我要在原先的程序段外加一個循環,那麼循環體內 每個 語句都要在前面打個Tab這會非常麻煩, 不像C、pascal之類的只要用{...},begin...end把循環體包括進去就行了


1. 現在即使最簡單的代碼編輯器也支持整塊代碼的左右移動--大部分編輯器是選定幾行代碼,按tab整塊右移,shift+tab左移。

2. 即使你用pascal,c或者java什麼的,也需要保證正確的縮進,否則我傾向於稱之為亂塗亂畫的天書而非代碼。代碼是給人看的,天書是讓機器猜然後祈求上天保佑它猜對你的想法。從這個角度來說,python在教我們養成好習慣。


如果你用 Sublime Text 的話,全選要更改的 n 行代碼(n &> 1),然後按 tab,就會全部縮進一格;按 shift + tab 就會取消縮進一格。

如果你用 Vim 的話,visual mode 下選中要更改的 n 行代碼,然後 &>&>,就全部縮進一格;&<&< 取消縮進一格;

...

大部分編輯器都有類似的功能。


如果你用vim

如果你又把它配置成適合寫python(包括這個 http://www.vim.org/scripts/script.php?script_id=30 )

那你加入那個新的行之後,游標移動到那個行上按:

1000==

大功告成

比較笨的一個方法是:

游標移動到需要改的第一行

按 0 到行首

ctrl+v 進入選擇模式

按 j 直到最後需要改的一行

按 I (shift+i)插入

按 tab 插入一個tab

按 esc 返回

好了,現在從第一行到最後需要插入tab的一行最前面都插入了一個tab。


ide 或 編輯器都有快捷鍵。


個人覺得,python使用縮進來表示代碼的嵌套邏輯是一個非常傻逼的語法。

這個時候肯定有人說了,IDE或者Editor裡面都能自動對齊代碼。

確實如此IDE或者Editor都能自動對齊代碼,比如寫C/C++/Perl以及其他語言的時候都是這麼自動對齊的,但是寫python就不行。

因為Editor對齊代碼的前提是Editor能知道程序的嵌套邏輯,在其他語言裡面程序的嵌套邏輯是依靠{}來表示的,但是python這個語言是依靠縮進來表示的,所以對於Editor來說,對齊python的代碼就是一個先有雞還是先有蛋的問題。

然後,肯定有人又會說,這個是習慣問題,習慣了就好。。。


使用vim也可以將游標移動要縮進的首行,如果要左縮進下面的n行,可以按鍵:「n&<&<」,右縮進按鍵「n&>&>」


推薦閱讀:

簡歷中如何證明自己的編程能力?
怎樣才能寫出 Pythonic 的代碼?
優化 Python 性能:PyPy、Numba 與 Cython,誰才是目前最優秀的 Python 運算解決方案?
Python 所謂的「閉包」是不是本著故意把人搞暈的態度發明出來的?
學習python為什麼要在linux下?怎麼學?

TAG:Python |