(二)Python是一門什么樣的語言?


在學習python是一門什么樣的語言之前首先需要知道什么是編譯和解釋?

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快; 

而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯后的程序運行的快的. 

這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式)

通俗的來講:

編譯型
C,C++
C語言
#include <stdio.h>
2 int main(void)
3 {
4 printf("\nhello world!");
5 return 0;
6 }
*編譯器* 編譯器gcc (linux編譯器)----->>>支持linux
--------------------------------
000100001011010
gcc test.c -o test.h
 
-----------windows編譯器---------c compiler---- 支持window環境
在不同的操作系統需要不同的編譯器實現編譯。
 
編譯型缺點:可移植性差
-----優點:運行速度快
(直接翻譯成機器指令)
中國人-----》翻譯---》日本人 
(中文)---(日文)----日文
說了2分鍾,一次性聽完,一次性翻譯------編譯型------都是一次性執行,很流暢很快!
編譯器——保存成二進制——計算機直接調用
解釋型:
python,php,ruby,Java
解釋器——保存成一條一條指令——解釋給計算機使用
中國人-----》翻譯---》日本人 
(中文)---(日文)----日文
一句一句翻譯,邊解釋邊執行,運行慢
中國人----->>翻譯----->>美國人
中文--------英文---------英文
翻譯官———-〉解釋器    這個翻譯官精通多國語言----可以跨平台   
一處翻譯到處執行
所以說:python的優點是可以跨平台使用,缺點是運行起來比編譯型語言慢。

從更多更全面地角度去看python的優缺點:

先看優點

  1. Python的定位是“優雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復雜的程序。
  2. 開發效率非常高,Python有非常強大的第三方庫,基本上你想通過計算機實現任何功能,Python官方庫里都有相應的模塊進行支持,直接下載調用后,在基礎庫的基礎上再進行開發,大大降低開發周期,避免重復造輪子。
  3. 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
  4. 可移植性————由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工 作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那么你的所有Python程序無需修改就幾乎可以在市場上所有的系統平台上運行
  5. 可擴展性————如果你需要你的一段關鍵代碼運行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

再看缺點:

  1. 速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑於使用Python的主要原因,但其實這里所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須借助測試工具才能體現出來,比如你用C運一個程序花了0.1s,用Python是0.01s,這樣C語言直接比Python快了10s,算是非常誇張了,但是你是無法直接通過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種情況下,當然還是建議你用C去實現的。
  2. 代碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現。
  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任何時刻僅有一個線程在執行,Python的線程是操作系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即使在多核CPU平台上,由於GIL的存在,所以禁止多線程的並行執行。關於這個問題的折衷解決方法,我們在以后線程和進程章節里再進行詳細探討。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM