熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

"); //-->

博客專欄

EEPW首頁(yè) > 博客 > Python寫(xiě)碼時(shí)應(yīng)該縮進(jìn)使用tab還是空格

Python寫(xiě)碼時(shí)應(yīng)該縮進(jìn)使用tab還是空格

發(fā)布人:only1 時(shí)間:2020-09-24 來(lái)源:工程師 發(fā)布文章

  在目前生活中,隨著互聯(lián)網(wǎng)技術(shù)要求越來(lái)越高,也導(dǎo)致程序員們不斷的學(xué)習(xí)才能進(jìn)步,比如最簡(jiǎn)單的代碼縮進(jìn)問(wèn)題,對(duì)于程序員來(lái)說(shuō),其實(shí)Tab和空格遠(yuǎn)遠(yuǎn)不只是“立場(chǎng)”問(wèn)題那么簡(jiǎn)單。在不同的編輯器里tab的長(zhǎng)度可能不一致,所以在一個(gè)編輯器里用tab設(shè)置縮進(jìn)后,在其它編輯器里看可能縮進(jìn)就亂了??崭癫粫?huì)出現(xiàn)這個(gè)問(wèn)題,因?yàn)榭崭窬驼家粋€(gè)字符的位置。

  眾所周知,Tab在ASCII碼中,編碼是9,而空格是32。這也就是說(shuō),當(dāng)我們按下一個(gè)Tab的時(shí)候,即使它看起來(lái)就是8個(gè)空格(或者4個(gè)空格,不同的環(huán)境下,Tab可能顯示的效果不同),對(duì)于電腦來(lái)說(shuō),卻是完全不一樣的東西。這也意味著,對(duì)于用字符來(lái)描述過(guò)程的代碼來(lái)說(shuō),極有可能會(huì)是決定性的差異。


  尤其是對(duì)于一門(mén)用空格縮進(jìn)來(lái)區(qū)分代碼層次的語(yǔ)言——Python,我們來(lái)看一段代碼。


  classMyForm(Form):


  value1=StringField('value1')


  value2=StringField('value2')


  value3=StringField('value3')#這行用的是Tab縮進(jìn)


  submit=SubmitField('Submit')


  看起來(lái)這個(gè)value3變量和其他的變量沒(méi)有什么不同,然而卻出現(xiàn)了這樣的報(bào)錯(cuò)——縮進(jìn)錯(cuò)誤。


  value3=StringField('value3')


  IndentationError:unexpectedindent


  其實(shí)Python并沒(méi)有強(qiáng)制要求你用Tab縮進(jìn)或者用空格縮進(jìn),甚至空格按幾個(gè)都沒(méi)有強(qiáng)制要求(但在PEP8中建議了使用4個(gè)空格作為縮進(jìn),但是卻絕對(duì)!絕對(duì)不能混用Tab和空格,那么這里,是不是空格和Tab的區(qū)別就顯得很大了呢?


  這個(gè)時(shí)候有的童鞋就要說(shuō)了,我用PyCharm(或者其他IDE)怎么從來(lái)都沒(méi)有出現(xiàn)這樣的問(wèn)題呢?


  其實(shí),很多IDE對(duì)Tab鍵做了各種各樣的優(yōu)化,其中有一條就是,將Tab鍵展開(kāi)為為空格,也就是說(shuō),當(dāng)你按下Tab的時(shí)候,IDE實(shí)際上幫你把一個(gè)「9」轉(zhuǎn)換成了四個(gè)(或者八個(gè))「32」。但是要注意,不是所有的IDE都幫你做了這樣的工作!同理,對(duì)于好純潔好不做作的編輯器Vim來(lái)說(shuō),肯定也不會(huì)幫你做這樣的工作了。


  既然Tab在不同的環(huán)境下展現(xiàn)不一樣,而空格卻永遠(yuǎn)都是一樣的。對(duì)于一些細(xì)致排版縮進(jìn)來(lái)說(shuō)(比如說(shuō)想把每一行的注釋都對(duì)齊),用空格也更加精確。這樣看起來(lái),確實(shí)是用空格來(lái)寫(xiě)代碼要好于用Tab呢。


  空格代替Tab的好處:


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


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


  3、tab是制表符而不是縮進(jìn)符,正如在html頁(yè)面中大量使用進(jìn)行布局是個(gè)不好的編程習(xí)慣一樣,在編程中大量使用制表符布局通常也不是個(gè)好習(xí)慣。


  一般情況下,團(tuán)隊(duì)開(kāi)發(fā)都要制定一套編碼規(guī)范,在大部分團(tuán)隊(duì)中,使用4個(gè)空格代替Tab是大家默認(rèn)的。所以非常建議大家使用空格代替Tab,另外各個(gè)IDE(編輯器)都提供了tab自動(dòng)轉(zhuǎn)換空格的功能,只要大家設(shè)置一下,按下tab鍵就可以出現(xiàn)4個(gè)或者多個(gè)空格。


  以上就是關(guān)于扣丁學(xué)堂Python培訓(xùn)之寫(xiě)碼時(shí)應(yīng)該縮進(jìn)使用tab還是空格的詳細(xì)介紹,最后想要了解更多關(guān)于Python發(fā)展前景趨勢(shì),請(qǐng)關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的Python視頻教程系統(tǒng),通過(guò)千鋒扣丁學(xué)堂金牌講師在線錄制的第一套自適應(yīng)Python在線視頻課程系統(tǒng),讓你快速掌握Python從入門(mén)到精通開(kāi)發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Python技術(shù)交流群:816572891。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉