從本猿的觀點(diǎn),應(yīng)該說必須這么學(xué),如果你是科班出身,學(xué)校學(xué)的肯定是c/c++,有了c/c++的基礎(chǔ),轉(zhuǎn)到python基本不需要花費(fèi)什么功夫。原因如下:
- c是萬法之根基。很多語言的鼻祖,拿python來說,python的解釋器就是c語言編的,python在c面前就是個(gè)晚輩,用的所有功能函數(shù)都能翻譯成c語言,就是代碼行數(shù)的問題了
- c是面向過程的語言。對(duì)于開發(fā)初學(xué)者來說,面向過程更符合人類思維模式,冷不丁跟你說類,實(shí)例,繼承,你是一臉懵逼的。網(wǎng)上喜歡拿五子棋來比喻面向過程和面向?qū)ο蟮膮^(qū)別。我們要設(shè)計(jì)五子棋程序,寫代碼肯定是先開始游戲,然后黑子走,畫界面,判斷輸贏,再白子走,畫界面,判斷輸贏,這么循環(huán),最后輸出結(jié)果。你不可能馬上想到,我要把黑白子,棋盤,規(guī)則作為獨(dú)立對(duì)象來編程,這需要大量代碼實(shí)踐。
- c的語法結(jié)構(gòu)嚴(yán)謹(jǐn)。python把所有變量都封裝了,一切皆為對(duì)象,除了縮進(jìn)有點(diǎn)蛋疼,其他特別自由。比如a=3,python就自動(dòng)判斷是int了,c要自己聲明inta=3,所以初學(xué)c的時(shí)候會(huì)有一段時(shí)間陣痛期,比如某個(gè)類型的變量在16/32/64位系統(tǒng)占多少字節(jié)的問題,熬過去了你對(duì)系統(tǒng)底層的數(shù)據(jù)結(jié)構(gòu)將會(huì)有更深的體會(huì)