Python編程中的製表符與空格

當我進行Python編程時,我老是使用製表符進行縮進。 但後來我在SO上遇到了一個問題,有人指出大多數Python程序員使用空格而不是製表符來最小化編輯器到編輯器的錯誤。 python

這有什麼不一樣? 還有其餘緣由可使用空格而不是Python的製表符嗎? 或者這不是真的嗎? 程序員

我應該切換個人編輯器來插入空格而不是當即插入標籤或繼續像之前那樣繼續前進嗎? 編程


#1樓

由於PEP-8告訴咱們使用空格。 編輯器


#2樓

我最近發現了一篇題爲「 Python:關於縮進的神話 」的文章,討論了這個問題和相關問題。 這篇文章有充分的理由在編寫Python代碼時建議使用空格,但確定存在分歧的餘地。 spa

我相信大多數Python程序員都只使用空格。 code


#3樓

最「pythonic」的方法是每一個縮進級別使用4個空格。 然而,Python解釋器將識別空格或製表符。 惟一的問題是你必須永遠不要混合空格和標籤 ,選擇其中一個。 也就是說,規範建議使用空格,大多數開發人員都使用空格,因此除非你有充分的理由不這樣作,不然我會說空格。 開發


#4樓

當您在文件中混合縮進時,會發生編輯器到編輯器錯誤。 這產生以下:一個代碼塊用4個空格縮進,而後一個縮進級別「in」,它用縮進鍵縮進。 如今作這個的異教徒(混合標籤和空格)有它因此他的標籤也是4個空格,因此他沒有看到任何問題,Python沒有看到任何問題。 字符串

如今咱們的受害者來了,他的標籤設置爲8個空格。 如今,咱們的受害者認爲代碼看起來所有被破壞,並經過刪除一級縮進來 修復它 ,如今使代碼看起來仍然是2級縮進,但實際上一個級別 。 在這一點上,全部的地獄都破裂了。 get

這裏的教訓是,你永遠不該該混合標籤和空格。 若是您堅持這一點,那麼不管您我的使用哪一種代碼,均可以輕鬆地將代碼從新插入空格或製表符。 確保不混合製表符和空格的最佳方法是始終使用-tt運行python ,這會在製表符和空格混合時產生錯誤。 io

對於製表符和空格,我我的使用製表符,使其與外觀分開縮進 - 當使用製表符縮進代碼時,更改代碼的外觀要比使用空格更容易。 我知道這與99%的Python程序員所作的相反,但這是我我的的偏好,而且在任何狀況下很容易將選項卡式文件轉換爲間隔文件。 反過來並不老是正確的,由於你可能會意外地敲掉字符串中的4個空格等。


#5樓

你能夠混合標籤和空格......可是一個標籤被認爲是與8個空格相同的縮進,因此除非你的編輯器被設置爲將標籤視爲8個空格,不然混合它們時會遇到麻煩。

相關文章
相關標籤/搜索