python可以說是目前最火的語言之一了,人工智慧的興起讓python一夜之間變得家喻戶曉,python號稱目前最最簡單易學的語言,現在有不少高校開始將python作為大一新生的入門語言。本萌新也剛開始接觸python,發現python與其他語言確實有很大的區別。python是由c語言實現的,因此想把python與c語言做乙個簡單的比較。
一、
c語言是編譯型語言,經過編譯後,生成機器碼,然後再執行,執行速度快,不能跨平台,一般用於作業系統,驅動等底層開發。
python是編譯型還是解釋型這個界限並不明顯,但大致上可以理解為解釋型語言,執行速度慢,由於python虛擬機器,python是可以跨平台的,python高度整合適合於軟體的快速開發。
二、
c語言的資料型別如下圖:
c語言中需要事先定義變數型別,以int型別為例,當定義乙個int型變數後,就會在記憶體中開闢4個位元組,再來進行初始化,由於長度是指定的,在運算過程中需要考慮,溢位,精度等問題。
python中的資料型別:
1.number:數字
intfloat
bool
complex
2.string:字串
3.list:列表
4.tupel:元組
5.sets:集合
6.dictionary:字典
ython不需要事先定義變數型別,以a=3為例,在記憶體中存放乙個整數3,然後再用變數a指向3,變數a是沒有型別的,我們所說的型別是指變數所指的記憶體中物件的型別。
從資料型別上就可以看出python的友好性,基本資料型別變少了,沒有煩人的指標,不需要考慮資料溢位和精度的問題,當在程式中需要使用某個變數時,就能夠直接使用,而不需要在程式開頭定義變數。除此之外,python還提供了str,list,dict這些強大的資料型別,讓程式開發變的更為簡單。
三、
python還提供了乙個互動介面,輸入python進入互動介面,輸入exit()退出互動介面,類似於linux終端,輸入一行命令,執行一行,為學習python提供了很大的便利。
四、
在運算子和優先順序上面,兩者並沒有大的區別,但在python中沒有自加和自減運算子,在邏輯運算子上python也區別於c語言,python中是and,or,not ,而c語言中則是&&,||,!
六、
python中通過縮進來表示語句體,c語言通過{}來表示語句體,並且在python中每一條語句結尾後沒有分號,判斷語句if else,這兩者沒有區別,迴圈語句while也沒有,只是for迴圈,python通過for in來表示。
七、
python有很多內建函式(build in function),不需要寫標頭檔案,python還有很多強大的模組,需要時匯入便可。c語言在這一點上遠不及python,大多時候都需要自己手動實現。
八、
c語言中的函式,有著嚴格的順序限制,如果要呼叫函式,該函式需要在本次呼叫之前就需要被實現,或者在程式開頭事先宣告,而python中則沒有這個限制,python中還有高階函式這一概念,即函式名也可當作函式引數,函式名也是一種變數,指向記憶體中的某個函式,這種寫法可以大大減少**長度。
python中還提供了可變引數和關鍵字引數,這樣使得函式的功能大大提高,原來需要寫多個函式,現在只需要乙個函式就可以實現這些功能。
九、
c語言是面向過程的語言,很多時候都需要自己手動實現函式來完成某一功能。python中引入了類和物件,是物件導向程式設計的語言,物件導向使得**的可重用性大大提高,資料的封裝性也更好。物件導向與面向過程的具體比較就不多說了,但有兩句非常重要的話:類是抽象的,而物件是具體的。
十、
python中既有函式也有方法,常常讓人疑惑,我個人覺得也沒有必要區分的非常清楚,但是兩者還是有較大的區別:函式是自由的,而方法是受限的。在程式設計的時候需要分清楚呼叫的是方法還是函式。
總結:python可以說是非常`簡單`的語言,高度整合,**量少,簡單是相對其他語言而言。但程式設計從來都不是乙個簡單活,需要我們不斷學習,掌握底層實現原理,才是正道。
C語言和C 的區別
c和c 的關係 就像是win98跟winxp的關係。c 是在c的基礎上增加了新的理論,玩出了新的花樣。所以叫c加加。c和c 的區別 c是乙個結構化語言,它的重點在於演算法和資料結構。c程式的設計首要考慮的是如何通過乙個過程,對輸入 或環境條件 進行運算處理得到輸出 或實現過程 事務 控制 c 首要考...
C語言和C 的區別
c 是c發展來的!c 是物件導向的語言,而c是結構化的語言!c的所有 在c 上都能應用,而c 的 在c上不能應用!c 是功能更強大的c!c語言與vc 的區別有很多 1,全新的程式程式思維,c語言是面向過程的,而vc 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在乙個標頭...
C語言和C 的區別
1.字尾不同 2.關鍵字不同 c語言 c99有32個關鍵字 c c 98有63個關鍵字 3.c 面向過程 c 基於物件導向 面向過程與物件導向的區別?1 面向過程 c語言 eat 蛋炒飯 把所有要做的放在一起,無法做到飯與菜的分離,如果想改變菜會造成浪費 舉個例子 開車走在c中這麼想的,先分為幾步 ...