什么是Python?


  Python(大蟒蛇)是一門解釋型、面向對象、帶有動態語義的高級程序設計語言。

      在於1989年,由一位名叫Guido van Rossum(吉多.范羅蘇姆),為打發時間設計了Python語言,第一個發行版公開於1991年。

  Python是一款純粹的自由軟件,源代碼和解釋器CPython都遵循了GPL(GNU General Public License)協議。

  Python語法清晰簡潔,最有特色的是用空白符作為語句的縮進。

  Python具有強大而豐富的類庫,也經常被別人說是膠水語言,可以跟其它語言(c/c++)寫的模塊結合在一起。常見的情況是使用Python快速生成程序的原型,然后有一部分需要有特別高的要求,需要其它語言改寫。例如3D游戲中的圖形渲染需要用到C/C++編寫,然后封裝成.py擴展類庫由Python調用。需要注意的使用擴展類型需要考慮跨平台性。

  優點:

    1.簡單:Python是一種代表簡單主義思想的語言。

    2.易用:Python簡單容易上手,因為有簡單容易看懂的文檔。

    3.速度快:運行速度快,因為Python中的標准庫和第三方庫都是C語言編寫的,所以很快。

    4.免費、開源:Python是一款FLOSS(自由/源代碼軟件)之一,使用者可以自由地發布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。

    5.高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。

    6.可移植性:由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。這些平台包括Linux、Windows、 FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基於linux開發的android平台。

    7.解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。運行程序的時候,連接/轉載器軟件把你的程序從硬盤復制到內存中並且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行 程序。在計算機內部,Python解釋器把源代碼轉換成稱為字節碼的中間形式,然后再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。

    8.面向對象:Python既支持面向過程的編程也支持面向對象的編程。在“面向過程”的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在“面向對象”的語言中,程序是由數據和功能組合而成的對象構建起來的。

    9.可擴展性:如果需要一段關鍵代碼運行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。

    10.可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。

    11.豐富的庫:Python標准庫確實很龐大。它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。這被稱作Python的“功能齊全”理念。除了標准庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。

    12.規范的代碼:Python采用強制縮進的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進制代碼。

  缺點:

    1.單行語句和命令行輸出問題:很多時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序,不需要如Python一樣,必須將程序寫入一個.py文件。

    2.獨特的語法:這也許不應該被稱為局限,但是它用縮進來區分語句關系的方式還是給很多初學者帶來了困惑。即便是很有經驗的Python程序員,也可能陷入陷阱當中。最常見的情況是tab和空格的混用會導致錯誤,而這是用肉眼無法分別的。

    3.運行速度慢:這里是指與C和C++相比。

  

  應用:

    系統編程:提供APIApplication Programming Interface應用程序編程接口),能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具[6]  。

    圖形處理:有PIL、 Tkinter等圖形庫支持,能方便進行圖形處理。
 
    數學處理:NumPy擴展提供大量與許多標准數學庫的接口。
 
    文本處理:python提供的re模塊能支持 正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發。數據庫編程:程序員可通過遵循Python DB-API(數據庫 應用程序編程接口)規范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等數據庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。 網絡編程:提供豐富的模塊支持sockets編程,能方便快速地開發 分布式應用程序。很多大規模軟件開發計划例如 Zope,Mnet 及 BitTorrent. Google都在廣泛地使用它。
 
    Web編程:應用的開發語言,支持最新的XML技術。
 
    多媒體應用:Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行二維和三維 圖像處理。PyGame模塊可用於編寫游戲軟件。
 
    pymo引擎:PYMO全稱為python memories off,是一款運行於Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG游戲引擎。因其基於python2.0平台開發,並且適用於創建 秋之回憶memories off)風格的AVG游戲,故命名為PYMO。

    黑客編程:python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感。

  標准庫:    

    Python擁有一個強大的標准庫。Python語言的核心只包含數字、 字符串、列表、字典、文件等常見類型和函數,而由Python標准庫提供了系統管理、網絡通信、文本處理、數據庫接口、圖形系統、XML處理等額外的功 能。Python標准庫命名接口清晰、文檔良好,很容易學習和使用。
 
    Python社區提供了大量的第三方模塊,使用方式與標准庫類似。它們的功能無所不包,覆蓋科學計算、Web開發、數據庫接口、圖形系統多個領域,並且大多成熟而穩定。第三方模塊可以使用Python或者 C語言編寫。 SWIG,SIP 常用於將C語言編寫的程序庫轉化為Python模塊。Boost C++ Libraries包含了一組庫,Boost.Python,使得以 Python 或 C++ 編寫的程序能互相調用。借助於擁有基於標准庫的大量工具、能夠使用低級語言如C和可以作為其他庫接口的C++,Python已成為一種強大的應用於其他語 言與工具之間的 膠水語言
 
    Python標准庫的主要功能有:文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合並、Unicode支持,二進制數據,文件處理,包含文件操作、創建臨時文件、文件壓縮與歸檔、操作配置文件等功能,操作系統功能,包含線程與進程支持、IO復用、日期與時間處理、調用系統函數、寫日記(logging)等功能,網絡通信,包含網絡套接字,SSL加密通信、異步網絡通信等功能網絡協議,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網絡協議,並提供了編寫網絡服務器的框架,W3C格式支持,包含HTML,SGML,XML的處理。其它功能,包括國際化支持、數學運算、HASH、Tkinter等


免責聲明!

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



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