溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決python的tab空格報錯

發布時間:2020-08-24 16:06:21 來源:億速云 閱讀:176 作者:Leah 欄目:編程語言

怎么解決python的tab空格報錯?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

python是一門嚴格遵守縮進的語言,縮進的規則代表著程序的層級關系。我們來看一段代碼。

class MyForm(Form):
    value1 = StringField('value1')
    value2 = StringField('value2')
    value3 = StringField('value3')        #這行用的是Tab縮進
    submit = SubmitField('Submit')
    learn python = 'QQ group:725479218'

看起來這個value3變量和其他的變量沒有什么不同,然而卻出現了這樣的報錯——縮進錯誤。

value3 = StringField('value3')
IndentationError: unexpected indent

其實Python并沒有強制要求你用Tab縮進或者用空格縮進,甚至空格按幾個都沒有強制要求,但是卻絕對!絕對不能混用Tab和空格,那么這里,是不是空格和Tab的區別就顯得很大了呢?

這個時候有的童鞋就要說了,我用PyCharm(或者其他IDE)怎么從來都沒有出現這樣的問題呢?

其實,很多IDE對Tab鍵做了各種各樣的優化,其中有一條就是,將Tab鍵展開為為空格,也就是說,當你按下Tab的時候,IDE實際上幫你把一個「9」轉換成了四個(或者八個)「32」。但是要注意,不是所有的IDE都幫你做了這樣的工作!同理,對于好純潔好不做作的編輯器Vim來說,肯定也不會幫你做這樣的工作了。

既然Tab在不同的環境下展現不一樣,而空格卻永遠都是一樣的。對于一些細致排版縮進來說(比如說想把每一行的注釋都對齊),用空格也更加精確。這樣看起來,確實是用空格來寫代碼要好于用Tab呢。

空格代替Tab的好處:

空格在各種情況下代碼都是你想要的樣子。而 tab 僅僅當你與代碼作者的 tab 尺寸設定為相同時,代碼才好看。修改 tab 尺寸并不能解決這個問題,因為你很難做到每打開一個文件就修改一次 tab 尺寸,而每個人通常有不同的習慣(POSIX/Unix 標準的 tab 應當為 8 字符寬度,Linus 大神也規定 Linux 內核中所有代碼的 tab 尺寸為 8)。如果存在行尾注釋,則 tab 尺寸更加是必須設定為與作者相同,這就意味著你看不同的代碼需要經常修改 tab 尺寸。我看過許多代碼,其使用的 tab 尺寸有從 2,3,4,5,6,8,16 甚至 32 的,如果你使用的 tab 尺寸與作者不同,外觀將很不理想。

靠譜的IDE都能解決前進后退增加減少縮進的問題,即便是四個空格,一個退格鍵也能全退了,所以在使用的方便性方面根本不存在問題?!绻г箘h除調整還不能有效解決的,你需要研究一下你的編輯器了。實際上增加減少縮進在主流編輯器中都直接有快捷鍵,無論是 tab 還是空格還是退格都很少直接被用于縮進。

tab 是制表符而不是縮進符,正如在 html 頁面中大量使用<table>進行布局是個不好的編程習慣一樣,在編程中大量使用制表符布局通常也不是個好習慣。

一般情況下,團隊開發都要制定一套編碼規范, 在大部分團隊中,使用4個空格代替Tab是大家默認的。所以非常建議大家使用空格代替Tab, 另外各個IDE(編輯器)都提供了tab自動轉換空格的功能,只要大家設置一下,按下tab鍵就可以出現4個或者多個空格。

看完上述內容,你們掌握怎么解決python的tab空格報錯的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女