Python之python簡介

1、Python的優缺點python

優勢:算法

   1.Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。瀏覽器

   2.開發效率很是高,Python有很是強大的第三方庫,基本上你想實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。網絡

   3.高級語言——當你用Python語言編寫程序的時候,你無需考慮注入如何管理你的程序使用的內存一類的底層細節。多線程

  (1)可移植性——因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使他可以工做在不一樣平臺上),若是你當心的避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行工具

  (2)可擴展性——若是你須要你的一段代碼運行的更快或者某些算法不太公開,你能夠把你的部分程序用C或者C++編寫,而後在你的Python中使用它們。測試

  (3)可嵌入性——你能夠把Python嵌入你的C++程序,從而向你的程序用戶提供腳本功能。網站

缺點:搜索引擎

  1. 速度慢,Python的運行速度相比C確實慢不少,跟JAVA相比也要慢一些,但其實這裏所指的慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運行一個程序花了0.0.1sPython0.1s這樣C語言直接比Python快了10倍,算是很是誇張的了,可是你沒法直接經過肉眼去感知的。其實大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然是建議你用C去實現的。
  2. 代碼不能加密,由於Python是解釋性語言,它的源碼都是以明文的形式存放的,不過我不認爲這是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來實現。
  3. 線程不能利用多cpu問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器(Globle Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲Pthread,在Windows上爲Win thread,徹底由操做系統調度線程來執行。一個Python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。

2、Python解釋器加密

  當咱們編寫Python代碼時,咱們獲得的是一個包含Python代碼的以.py爲擴展名的文本文件,要運行代碼,就須要Python解釋器去執行.py文件

 1.CPython

  當咱們從Python官方網站下載並安裝好Python2.7後,咱們就直接得到了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,因此叫CPython,在命令行下運行python就是啓動CPython解釋器。

CPython是使用最廣的Python解釋器。教程的全部代碼也都在CPython下執行

 2.IPython

  IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所加強,可是執行Python代碼的功能和CPython是徹底同樣的。比如不少國產瀏覽器雖然外觀不一樣,但內核其實都調用了IE。CPython用>>>做爲提示符,而IPython用In[序號]:做爲提示符

 3.PyPy

  PyPy是另外一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),因此能夠顯著提升Python代碼的執行速度。絕大部分Python代碼均可以在PyPy下運行,可是PyPy和CPython有一些是不一樣的,這就致使相同的Python代碼在兩種解釋器下執行可能可能會有不一樣的結果。若是你的代碼要放到PyPy下執行,就須要瞭解PyPy和CPython的不一樣點

 4.Jython

Jython是運行在Java平臺上的Python解釋器,能夠直接把Python代碼編譯成JAVA字節碼執行。

 5.IronPython

  IronPython和Jython相似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,能夠直接把Python代碼編譯成.Net的字節碼。

小結:Python的解釋器不少,但使用最普遍的仍是CPython,若是要和JAVA或.Net平臺交互,最好的辦法不是用Jython或IronPython,而是經過網絡調用來交互,確保各程序之間的獨立性。

相關文章
相關標籤/搜索