初學python,感受和C的部分不同
來源:
奇酷教育 發(fā)表于:
在學習的過程中,在翻閱資料的過程中,總結的一些C和python比較明顯的不同之處,有大方向的,也有細節(jié)的。
從開始學Python到現在也有三周多了,前后學習了Python核心編程。
下面就是在學習的過程中,在翻閱資料的過程中,總結的一些C和python比較明顯的不同之處,有大方向的,也有細節(jié)的,肯定也沒有總結完。
實際上,作為兩種完全不同的語言,下面這些差異只是冰山一角而已。權當拋磚引玉吧,至少應該對和我有相同研究興趣,正在考慮是否學習另一門語言的朋友有點幫助。
我之前的研究方向是嵌入式,顯然,C語言是我的主要語言。我不是一個語言愛好者,我以前覺得,對于做研究而不是應用的人來說,了解多門語言,不如精通一門語言。之所以去學python,主要還是因為python更有利于快速開發(fā)一些程序,也是因為現在認識到,研究和應用是不能分離的。
很多人覺得,既然懂C了,那么進一步掌握C++應該是水到渠成,但C++不是C的超集,而我又不喜歡C++的繁瑣和巨大,所以才決定看一看Python。我很喜歡Python的優(yōu)雅與快捷。
弱類型語言
一種類型可以被忽略的語言,與強類型相反。python是弱類型的。在python中,您可以將字符串 ‘12′ 和整數 3 進行連接得到字符串’123′,然后可以把它看成整數 123 。
強類型語言
一種總是強制類型定義的語言。Java 和 Python 是強制類型定義的。您有一個整數,如果不明確地進行轉換 ,不能將把它當成一個字符串。
具體怎么來理解這個“動態(tài)確定變量類型”,就要從Python的Object對象機制說起了。Objects(以下稱對象)是Python對于數據的抽象,Python中所有的數據,都是由對象或者對象之間的關系表示的,函數是對象,字符串是對象,每個東西都是對象的概念。
這個object機制,就是c所不具備的,主要體現在下面幾點:
、剛才說了,c是一個靜態(tài)類型語言,我們可以定義int a, char b等等,但必須是在源代碼里面事先規(guī)定。比如我們可以在Python里面任意一處直接規(guī)定a = “lk”,這樣,a的類型就是string,這是在其賦值的時候才決定的,我們無須在代碼中明確寫出。而在C里面,我們必須顯式規(guī)定char *a = “lk”,也就是人工事先規(guī)定好a的類型。
、由于在C中,沒有對象這個概念,只有“數據的表示”,比如說,如果有兩個int變量a和b,我們想比較大小,可以用a == b來判斷,但是如果是兩個字符串變量a和b,我們就不得不用strcmp來比較了,因為此時,a和b本質上是指向字符串的指針,如果直接還是用==比較,那比較的實際是指針中存儲的值——地址。
這就是我的部分體會