C與Python,初學者應該如何選擇

對於C和Python兩種語言,初學者應該選擇從那個開始入門?筆者認爲在作出選擇以前首先要對這兩種語言有一個初步的瞭解。首先來講,C語言是一門通用的編程語言。之因此稱其通用,是由於它可以作不少低級、底層的處理;同時它也有良好的跨平臺性,C語言能夠按照必定的標準在多種計算機平臺上進行編譯,包括嵌入式編程。而Python是一門面向對象的編程語言,這是它和C存在的一大區別;另外一個區別是Python是一種解釋型語言。在人們寫好這種語言以後還須要有解釋器進行翻譯才能夠在計算機上運行。但Python雖然從運行效率上與C語言相比較低,但Python有豐富的庫,並且這些庫不少是用C和C++寫的。這就使得Python與C有必定的相通性,並且和C語言相比,Python的專長在於數據統計分析和人工智能編程。
總結一點,C更基礎,Python更實用。
若是從此的研究方向是嵌入式,那麼C語言能夠做爲主攻方向。對於從事編程工做的朋友其實能夠多瞭解幾門語言,這樣可讓本身的視野更加開闊。學Python主要是由於它可以快速而簡潔地開發一些程序,易學易懂。但筆者認爲若是想要在程序開發行業作得更久,有良好的C語言基礎是不可缺乏的。尚學堂陳老師指出,由於真正要作高性能編程, 不可能將機器的體系架構拋到腦後讓Python虛擬機(或Java虛擬機等)幫你搞定全部底層。愈來愈多的CPU core,愈來愈恐怖的內存性能瓶頸,對於上層開發人員來講,無所謂,可是對高性能程序開發人員來講,這些是沒法透明的。不少應用,仍是本身掌控比較有效。這些場合中,彙編和C仍是不可替代的。可是,光知道C是不夠的,掌握一門面向對象語言,相對更高層的語言,不只對之後的我的發展有利,也會對本身的技術認識產生幫助。
C的學習曲線更陡,貌似簡單,其實難點也很是多,看上去較爲簡單的程序,也不是在短期內能夠掌握的。若要談到底層優化,須要的功底是按年算的。可是一旦你C語言的基礎打好了,對計算機的理解,對其餘語言的理解都是大有幫助的。好比,若是你有C基礎,能夠說,在較短的時間內解除Python,就能寫的出來一些不短的程序。後面的優化也算不上是難度太大的算法,都是很是基本的語句換來換去。在實際應用層面,Python比C方便的不是一個層次。
提及二者的不一樣能夠在對象機制上加以比較:對於「動態肯定變量類型」的理解,須要提到的是Python的Object對象機制。Objects即爲「對象」是Python對於數據的抽象,用對象或者對象之間的關係能夠表示Python中全部的數據,函數、字符串等等均可以是對象。關於對象有三種屬性:實體,類型和值。實體一旦建立就不會被改變,通常而言,決定對象所支持的操做方式的類型(type,包括number,string,tuple及其餘)也不會改變,但它的值能夠改變。若是要找一個具體點的說明,實體就至關於對象在內存中的地址,是本質存在。而類型和值都只是實體的外在呈現。Python提供了一些接口與對象進行交互,好比id()函數用來得到對象實體的整形,type()函數獲取其類型等等。
這種object機制,是C所不具有的,這也是Python的優點所在,c是一種靜態類型語言,咱們能夠定義int a, char b等等,但必須是在源代碼裏面事先規定。好比咱們能夠在Python裏面任意一處直接規定a = 「lk」,這樣,a的類型就是string,這是在其賦值的時候才決定的,咱們無須在代碼中明確寫出。
C和Python,初學者應該如何選擇?在以上內容中筆者舉了一些簡單的例子,尤爲是關於Object對象機制是Python與C最大的不一樣之處,除此以外還有Python的庫的強大與豐富,也使得用Python作通常的程序開發更加方便。
 算法

相關文章
相關標籤/搜索