First-python介紹

1、python2與python3的區別php

  python2:html

      一、臃腫,源碼的重複量比較多。java

      二、語法不清晰,其中摻雜了c、php、java等等的一些陋習。python

      三、不支持中文,需在程序首行引入‘-*-encoding utf-8 -*-’算法

      四、語法:用戶交互:raw_input編程

      五、print輸出時能夠不加() 瀏覽器

      六、能夠經過參數--enable-unicode=ucs2或--enable-unicode=ucs4指定使用2個字節或4個字節表示一個unicode字符  網絡

      七、xrange(2.7之後版本添加了range)多線程

      八、在繼承中經典類與新式類並存編程語言

      九、在繼承關係的類中深度優先

  python3:

      一、幾乎是重構後的源碼,比較優美、清晰、簡單。

      二、默認支持中文

      三、語法:用戶交互:input

      四、print輸出時必須加()

      五、默認使用ucs4表示一個unicode字符

      六、range

      七、在繼承中新式類

      八、在繼承關係中廣度優先

2、編程語言的分類

  編譯型:一次性將全部的程序編譯成二進制文件,而後運行。

         優勢:運行速度快。

         缺點:開發效率低,不能跨平臺。

  解釋型:程序運行時逐行解釋並運行。

         優勢:調試代碼方便,開發效率高,而且能夠跨平臺。

         缺點:運行速度慢。

3、python的優缺點

  優勢:

     一、python的定位是 "簡單" 、"清晰" 、"優美",因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜

        的程序。

     二、開發效率高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上

        再進行開發,大大下降開發週期,避免重複造輪子。

     三、高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節

     四、可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你

        的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行

     五、可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。

     六、可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

  缺點:

        一、速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速

        度慢在大 多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10

        倍,算是很是誇張了, 可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底可

        以知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。

        二、代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始

        就不該該用Python來去實現。

      三、線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,

        使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個

        python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。

 

  因爲整個Python語言從規範到解釋器都是開源的,因此理論上,只要水平夠高,任何人均可以編寫Python解釋器來執行Python代碼(固然難度很大)。事實上,確實存在多種

  Python解釋器。

4、python的種類

  CPython

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

  python就是啓動CPython解釋器。

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

  IPython

  IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所加強,可是執行Python代碼的功能和CPython是徹底同樣的。比如不少國產瀏覽器

  雖然外觀不一樣,但內核其實都是調用了IE。

  CPython用>>>做爲提示符,而IPython用In [序號]:做爲提示符。

  PyPy

  PyPy是另外一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),因此能夠顯著提升Python代碼的執行速度。

  絕大部分Python代碼均可以在PyPy下運行,可是PyPy和CPython有一些是不一樣的,這就致使相同的Python代碼在兩種解釋器下執行可能會有不一樣的結果。若是你的代碼要放到

  PyPy下執行,就須要瞭解PyPy和CPython的不一樣點

  Jython

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

  IronPython

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

  小結:

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

相關文章
相關標籤/搜索