【Python】Python 對比 C語言的差異
文章轉自部落格園:哦摩西羅伊。
一、編譯區別
C語言是編譯型語言,經過編譯後,生成機器碼,然後再執行,執行速度快,不能跨平臺,一般用於作業系統,驅動等底層開發。Python是編譯型還是解釋型這個界限並不明顯,但大致上可以理解為解釋型語言,執行速度慢,由於Python虛擬機器,Python是可以跨平臺的,Python高度整合適合於軟體的快速開發。
二、基本元素
C語言的資料型別如下圖:
C語言中需要事先定義變數型別,以int型別為例,當定義一個int型變數後,就會在記憶體中開闢4個位元組,再來進行初始化,由於長度是指定的,在運算過程中需要考慮,溢位,精度等問題。
Python中的資料型別:
1.Number:數字 Int Float Bool Complex
2.String:字串
3.List:列表
4.Tupel:元組
5.Sets:集合
6.Dictionary:字典
python不需要事先定義變數型別,以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中既有函式也有方法,常常讓人疑惑,我個人覺得也沒有必要區分的非常清楚,但是兩者還是有較大的區別:函式是自由的,而方法是受限的。在程式設計的時候需要分清楚呼叫的是方法還是函式。
相關文章
- 通過PHP與Python程式碼對比淺析語法差異PHPPython
- 通過 PHP 與 Python 程式碼對比淺析語法差異PHPPython
- Python與其它程式語言的差異化總結Python
- Java語言與C++語言的差異總結JavaC++
- Java語言和C++語言的差異 (轉)JavaC++
- Python和Java、PHP、C、C#、C++等其他語言的對比?PythonJavaPHPC#C++
- Python 與 JavaScript 語法差異點PythonJavaScript
- python中 “與,或,異或”與C語言的不同PythonC語言
- Java語言和C++語言的差異——老生常談 (轉)JavaC++
- 三種語言實現差分(C++/Python/Java)C++PythonJava
- Python自動化:智慧對比Word文件,秒速鎖定差異!Python
- Python對比其他語言有什麼優劣勢?Python
- Java和Python哪個更好?解讀Python對比其他語言的優勢JavaPython
- 效能對比 Go、Python、PHP、C/C++、C# .Net、Java、Node.js、… 等多程式語言GoPythonPHPC++C#JavaNode.js
- 從python2.7和python3.0的語法差異總結Python
- Git比對檔案之間的差異Git
- Python、 JAVA這種語言比較火,是不是C語言就不行了PythonJavaC語言
- 語言對比的地方
- 文字差異對比工具 go-diffGo
- Python對比其他語言有什麼好處?Python就業怎麼樣?Python就業
- python開發-與其他語言的比較Python
- openGauss資料與PostgreSQL的差異對比SQL
- 使用Python來比較資料夾並提取差異部分Python
- C#與Lua語言學習對比一C#
- 比對兩個資料庫的差異:Java篇資料庫Java
- git 本地對比2次commit直接的差異GitMIT
- 用C語言擴充套件Python的功能C語言套件Python
- c語言模擬Python的命名引數C語言Python
- Mac 上超好用的程式碼對比工具 beyond compare,對比json差異MacJSON
- Unique Index和Normal Index差異經典對比IndexORM
- vue-codemirror 實現文字差異比對Vue
- 比Python、Java更快的 Go 語言,能否稱霸江湖?PythonJavaGo
- Python 和 C 語言學哪個更好?Python
- python與c語言的語法有哪些不一樣的PythonC語言
- python和c語言的區別是什麼PythonC語言
- Python 和 c++/c/java 對於負數的儲存方式對比PythonC++Java
- 示例解讀 Python 2 和 Python 3 之間的主要差異Python
- 學習Python前,需要學C語言嗎?Python基礎PythonC語言