小編給大家分享一下python中tab鍵指的是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的10年時間我們累計服務了上千家以及全國政企客戶,如酒樓設計等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質量監(jiān)控加上過硬的技術實力獲得客戶的一致表揚。
對于程序員來說,其實Tab和空格遠遠不只是“立場”問題那么簡單。
在不同的編輯器里tab的長度可能不一致,所以在一個編輯器里用tab設置縮進后,在其它編輯器里看可能縮進就亂了??崭癫粫霈F(xiàn)這個問題,因為空格就占一個字符的位置。
眾所周知,Tab在ASCII碼中,編碼是9,而空格是32。這也就是說,當我們按下一個Tab的時候,即使它看起來就是8個空格(或者4個空格,不同的環(huán)境下,Tab可能顯示的效果不同),對于電腦來說,卻是完全不一樣的東西。這也意味著,對于用字符來描述過程的代碼來說,極有可能會是決定性的差異。
尤其是對于一門用空格縮進來區(qū)分代碼層次的語言——Python。
我們來看一段代碼。
class MyForm(Form): value1 = StringField('value1') value2 = StringField('value2') value3 = StringField('value3') #這行用的是Tab縮進 submit = SubmitField('Submit') learn python = 'QQ group:725479218'
看起來這個value3變量和其他的變量沒有什么不同,然而卻出現(xiàn)了這樣的報錯——縮進錯誤。
value3 = StringField('value3')
IndentationError: unexpected indent
其實Python并沒有強制要求你用Tab縮進或者用空格縮進,甚至空格按幾個都沒有強制要求(但在PEP8中建議了使用4個空格作為縮進:https://www.python.org/dev/peps/pep-0008/),但是卻絕對!絕對不能混用Tab和空格,那么這里,是不是空格和Tab的區(qū)別就顯得很大了呢?
這個時候有的童鞋就要說了,我用PyCharm(或者其他IDE)怎么從來都沒有出現(xiàn)這樣的問題呢?
其實,很多IDE對Tab鍵做了各種各樣的優(yōu)化,其中有一條就是,將Tab鍵展開為為空格,也就是說,當你按下Tab的時候,IDE實際上幫你把一個「9」轉換成了四個(或者八個)「32」。但是要注意,不是所有的IDE都幫你做了這樣的工作!同理,對于好純潔好不做作的編輯器Vim來說,肯定也不會幫你做這樣的工作了。
既然Tab在不同的環(huán)境下展現(xiàn)不一樣,而空格卻永遠都是一樣的。對于一些細致排版縮進來說(比如說想把每一行的注釋都對齊),用空格也更加精確。這樣看起來,確實是用空格來寫代碼要好于用Tab呢。
空格代替Tab的好處:
空格在各種情況下代碼都是你想要的樣子。而 tab 僅僅當你與代碼作者的 tab 尺寸設定為相同時,代碼才好看。修改 tab 尺寸并不能解決這個問題,因為你很難做到每打開一個文件就修改一次 tab 尺寸,而每個人通常有不同的習慣(POSIX/Unix 標準的 tab 應當為 8 字符寬度,Linus 大神也規(guī)定 Linux 內核中所有代碼的 tab 尺寸為 8)。如果存在行尾注釋,則 tab 尺寸更加是必須設定為與作者相同,這就意味著你看不同的代碼需要經(jīng)常修改 tab 尺寸。我看過許多代碼,其使用的 tab 尺寸有從 2,3,4,5,6,8,16 甚至 32 的,如果你使用的 tab 尺寸與作者不同,外觀將很不理想。
靠譜的IDE都能解決前進后退增加減少縮進的問題,即便是四個空格,一個退格鍵也能全退了,所以在使用的方便性方面根本不存在問題?!绻г箘h除調整還不能有效解決的,你需要研究一下你的編輯器了。實際上增加減少縮進在主流編輯器中都直接有快捷鍵,無論是 tab 還是空格還是退格都很少直接被用于縮進。
tab 是制表符而不是縮進符,正如在 html 頁面中大量使用