學習python之初,不知道大家對於python有沒有疑惑,應當是有的。這里我整理出來了自己的一些疑惑,供大家參考。
為什么python是高級程序設計語言
Java,C,C++這些語言是高級語言,因為他們能極大滿足用戶的需求,被用於設計開發一些環境。而python,在我心中好像就是個單純的腳本語言......那么,為什么書上說python是高級語言呢?是我對python的誤解嗎?
要想解開這個謎底,首先需要了解一下什么是高級程序設計語言,這樣才能‘對症下葯’。
高級程序設計語言
高級程序設計語言,亦稱‘算法語言’,簡稱‘高級語言’。是用易懂易寫的方式編寫程序的一種語言。
高級程序設計語言可擺脫計算機指令系統和機器語言隨不同機器不同的約束,並設計相應的編譯程序(也就是我們常說的‘編譯器’),把適用於各種機器的高級語言編寫的源程序轉換為中央處理器能識別的目標代碼。
從這里,我們明確了高級程序設計語言的幾個特點:易懂,易寫,跨平台,能將高級語言轉化為CPU能直接識別的語言。
接下來,就來看看為什么python是高級程序設計語言:
- 首先,python簡單易懂,人們學起來很簡單。
- python易於編寫,語法簡單,還可以導入第三方庫,被廣泛使用。
- python可遷移,因為它不受底層條件的約束,在任何平台上都可運行,比如:LINUX、Windows等等。
- python文件執行時,python文件將被編譯為python字節碼,然后編譯后的字節碼由python虛擬機(Python Virtual Machine)執行。用戶不用考慮底層的細節,比如管理程序的內存等等。
綜上,python是一門高級程序設計語言。
python為什么是解釋型編程語言
同上,了解一個東西是否是某個東西時,先弄明白‘某個東西’的本質是什么,再‘對症下葯’。
解釋型編程語言
相對於編譯型語言而存在。源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,執行時再由解釋器翻譯成機器語言進行解釋運行。比如python,JS,shell等都是解釋型編程語言。
了解了這些,再來看看為什么python是解釋型語言:
上面淺談了一下,python執行時是將python文件轉化為python字節碼,再由python虛擬機編譯執行。
這里的python字節碼就相當於圖中的中間代碼,當程序需要執行時,解釋器一行一行讀取代碼,CPU緊接着將解釋器翻譯的機器代碼接收處理,最后得到輸出結果。這就是一個python文件執行的過程,因此,python是解釋型語言。
用其他語言寫的程序python能否調用?如何調用
python是一種“膠水語言”,能夠將很多語言粘合在一起。那么,它是如何粘合的呢?
是通過一系列包的導入粘合的。
- python調用python,使用import或者from...import...
- python調用C寫的dll,用ctypes包
- python調用exe,用subprocess包
- python調用C/C++,用Cython生成並調用pyd
- python調用Java,用jpype包。復雜的,可以嘗試用pyjnius。
- python調用R代碼,使用subprocess包
Python 的開發,是以 C/C++ 為基礎的,所以針對 C/C++ 的調用最為方便。其它程序、動態鏈接庫、代碼的調用,都可以通過 EXE、DLL、C/C++ 三種渠道之一實現。Python 還是比較適合粘合各種程序與代碼的。
參考文獻
[1] 劉慶,劉紅英,劉俊坤;《Python編程案例教程》,航空工業出版社
[2] 跑得快,《為什么用Python,高級的Python是一種高級編程語言》,博客園
[3] 《解釋型語言》, 百度學術
[4] anonymity,《python是解釋型語言嗎》,PHP中文網
[5] 曲曉峰,《借石攻玉——如何用 Python 調用其他程序和代碼》,知乎