Python簡介
做爲主流的開源系統之一,Python擁有很大且活躍的開發社區,有不凡的速度進行版本更新和開發改進。python
1、Python技術上的優勢
1.面向對象web
從根本上講,Python是一種面向對象的語言。它的類模塊支持多態、操做符重載和多重繼承等高級概念。Python特有的簡潔語法和類型,比其餘OOP語言更容易學習。正則表達式
2.免費shell
Python的使用和分發是徹底免費的,而「免費」並不表明「無支持」。相反,Python的在線社區對用戶需求的響應和商業軟件同樣快。數據庫
3.可移植編程
Python的標準實現是由可移植的ANSI C編寫的,能夠在全部主流平臺上編譯和運行。後端
-
- Linux和Unix系統
- 微軟Windows和DOS
- Mac OS
- BeOS、OS/二、VMS和QNX
- 實時操做系統如VxWorks
- Cray超級計算機和IBM大型機
- 運行Palm OS、PocketPC和Linux的PDA
- 運行Windows Mobile和Symbian OS的移動電話
- 遊戲終端和iPod
4.功能強大服務器
從特性的觀點看,Python是一個混合體。它豐富的工具集使它介於傳統的腳本語言(如:Tcl、Scheme和Perl)和系統語言(如:C、C++和Java)之間。網絡
-
- 動態類型:Python在運行過程當中隨時跟蹤對象的種類,不須要代碼中複雜的類型和大小的聲明。沒有類型和變量聲明,代碼不受數據類型的約束,它每每能自動地應用一種廣義上的對象。
- 自動內存管理:自動進行對象分配,當對象再也不使用時將自動撤銷對象(「垃圾回收機制」),當須要時自動擴展或壓縮。Python可以代替你進行底層的內存管理。
- 大型程序支持:Python包含了模塊、類和異常等工具,這些工具容許你把系統組織爲組件,使用OOP重用並定製代碼,並以一種優雅的方式處理事件和錯誤。
- 內置對象類型:提供了經常使用的數據結構做爲語言的基本組成部分,如:列表(list)、字典(dictionary)、字符串(string)。它靈活易於使用,如:內置對象能夠根據需求擴展或收縮,能夠任意地組織複雜的信息等。
- 內置工具:爲了對以上對象類型的進行處理,Python自帶了許多強大的標準操做,包括合併(concatenation)、分片(slice)、排序(sort)和映射(mapping)等。
- 庫工具:爲了完成更多特定的任務,Python預置了許多預編碼的庫工具,從正則表達式匹配到網絡都支持。
- 第三方工具:因爲Python是開放源代碼,它鼓勵開發者提供Python內置工具以外的預編碼工具。從網絡上,能夠找到COM、圖像處理、CORBA ORB、XML、數據庫等不少免費的支持工具。
除這一系列外,Python保持了至關簡潔的語法和設計,綜合這一切獲得的就是一個具備腳本語言全部可用性的強大編程工具。數據結構
5.可混合
Python程序能夠以多種方式輕易地與其餘語言編寫的組件「粘接」在一塊兒。
6.簡單易用
運行Python程序,只需簡單地鍵入Python程序並運行就能夠。可當即執行程序,造成了一種交互編程體驗和不一樣狀況下快速調整的能力,每每在修改代碼後能當即看到程序改變後的效果。
7.簡單易學
相對其餘編程語言,Python語言的核心是很是簡單易學。
2、Python用途
Python不只僅是一個設計優秀的編程語言,它可以完成現實中的各類任務。做爲編制其餘組件、實現獨立程序的工具、它一般應用於各類領域。實際上,做爲一種通用語言,Python的應用角色幾乎是無限的,你能夠在任何場合應用Python,從網站和遊戲開發到機器人和航天飛機控制。
1.系統編程
Python對操做系統服務的內置接口,使其成爲編寫可移植的維護操做系統的管理工具和部件的理想工具。能夠搜索文件和目錄樹,能夠運行其餘程序,用進程或線程進行並行處理等。Python的標準庫綁定了POSIX以及其餘常規操做系統(OS)工具:環境變量、文件、套接字、管道、進程、多線程、正則表達式模式匹配、命令行參數、標準流接口、Shell命令啓動器、文件名擴展等。
2.用戶圖形接口
Python的簡潔以及快速的開發週期十分適合開發GUI程序。內置了TKinter標準面向對象接口Tk GUI API,使Python程序能夠生成可移植的本地觀感的GUI。
3.Internet腳本
Python提供了標準Internet模塊,它使得Python程序可以普遍地在多種網絡任務中發揮做用,不管在服務器仍是在客戶端都是如此。腳本能夠經過套接字進行通訊;從發給服務器端的CGI腳本的表單中提取信息;經過FTP傳輸文件;解析、生成和分析XML文件;發送、接受、編寫和解析Email;經過URL獲取網頁;從獲取的網頁中解析HTML和XML文件;經過XMLRPC、SOAP、Telnet通訊等。Python的庫使這一切變得至關簡單。網絡上還能夠得到不少使用Python進行Internet編程的第三方工具。此外,涌現了許多正對Python的優秀的Web開發工具包,如:Django、Flask、Tornado、Web.py、TurboGears、web2py、Pylons、Zope和WebWare等。不少工具包含了諸如對象關係映射器、模型/視圖/控制器架構、服務器端腳本和模板,以及支持AJAX等功能,從而提供了完整的、企業級的Web開發解決方案。
4.組件集成
能夠經過C/C++系統進行擴展,並可以嵌套C/C++系統的特性,使其可以做爲一種靈活的黏合語言,能夠腳本化處理其餘系統和組件的行爲。
5.數據庫編程
對於傳統的數據庫需求,Python提供了對全部主流關係數據庫系統的接口,如:Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite等。定義了一種經過Python腳本存取SQL數據庫的可移植的數據庫API,這個API對於各類底層應用的數據庫系統都是統一的。
6.快速原型
對於Python程序來講,使用Python或C編寫的組件看起來都是同樣的,咱們一開始利用Python作系統原型,以後將組件移植到C/C++這樣的編程語言上,和其餘原型工具不一樣,當原型肯定後,Python不須要重寫。系統中不須要想C++這樣執行效率的部分可保持不變,從而維護和使用變得輕鬆起來。
7.數值計算和科學計算編程
NumPy數值編程擴展包括不少高級工具,如:矩陣對象、標準數學庫接口等。經過將Python與處於速度考慮而使用編譯語言寫的數值計算的常規代碼進行集成,NumPy將Python變成一個慎密嚴謹並簡單易用的數值計算工具。其餘一些數值計算工具爲Python提供動畫、3D可視化、並行處理等功能的支持。
8. 遊戲、圖像、人工智能、XML、機器人等
Python的應用領域不少,如:
-
- 能夠利用pygame系統使用Python對圖形和遊戲進行編程。
- 使用PySerial擴展在Windows、Linux以及更多系統上進行串口通訊。
- 用PIL、PyOpenGL、Blender、Maya和其餘的一些工具進行圖像處理。
- 用PyRo工具包進行機器人控制編程。
- 用xml庫、xmlrpclib模塊和其餘一些第三方擴展進行XML解析。
- 使用神經網絡仿真器和專業的系統shell進行AI編程。
- 使用NLTK包進行天然語言分析。
- 甚至可使用PySol程序下棋娛樂。
通常來講,這些領域當中許多在很大程度上都是Python組件集成角色的再次例證。對於一種集成的通用型語言,Python的應用極其普遍。
3、Python的商業應用開發
列舉一些比較有名的網站或應用。這其中有一些是用python進行開發,有一些在部分業務或功能上使用到了python,還有的是支持python做爲擴展腳本語言。數據大部分來自Wikepedia和Quora。
-
- Reddit - 社交分享網站,最先用Lisp開發,在2005年轉爲python
- Dropbox - 文件分享服務
- 豆瓣網 - 圖書、唱片、電影等文化產品的資料數據庫網站
- Django - 鼓勵快速開發的Web應用框架
- Fabric - 用於管理成百上千臺Linux主機的程序庫
- EVE - 網絡遊戲EVE大量使用Python進行開發
- Blender - 以C與Python開發的開源3D繪圖軟件
- BitTorrent - bt下載軟件客戶端
- Ubuntu Software Center - Ubuntu 9.10版本後自帶的圖形化包管理器
- YUM - 用於RPM兼容的Linux系統上的包管理器
- Civilization IV - 遊戲《文明4》
- Battlefield 2 - 遊戲《戰地2》
- Google - 谷歌在不少項目中用python做爲網絡應用的後端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python做爲開發語言
- NASA - 美國宇航局,從1994年起把python做爲主要開發語言
- Industrial Light & Magic - 工業光魔,喬治·盧卡斯創立的電影特效公司
- Yahoo! Groups - 雅虎推出的羣組交流平臺
- YouTube - 視頻分享網站,在某些功能上使用到python
- Cinema 4D - 一套整合3D模型、動畫與繪圖的高級三維繪圖軟件,以其高速的運算和強大的渲染插件著稱
- Autodesk Maya - 3D建模軟件,支持python做爲腳本語言
- gedit - Linux平臺的文本編輯器
- GIMP - Linux平臺的圖像處理軟件
- Minecraft: Pi Edition - 遊戲《Minecraft》的樹莓派版本
- MySQL Workbench - 可視化數據庫管理工具
- Digg - 社交新聞分享網站
- Mozilla - 爲支持和領導開源的Mozilla項目而設立的一個非營利組織
- Quora - 社交問答網站
- Path - 私密社交應用
- Pinterest - 圖片社交分享網站
- SlideShare - 幻燈片存儲、展現、分享的網站
- Yelp - 美國商戶點評網站
- Slide - 社交遊戲/應用開發公司,被谷歌收購
- Maya這款強大集成化3D建模和動畫系統,提供了一個Python腳本編程API。
- Intel、Cisco、Hewlett-Packard、Seagate、Qualcomm和IBM使用Python進行硬件測試。
- Industrial Light&Magic、Pixar等公司製做動畫電影。
- 在經濟市場預測方面,JPMorgan Chase、UBS、Getco和CItadel使用Python。
- Los Alamos、Fermilab、JPL等使用Python實現科學計算任務。
- iRobot使用Python開發了商業機器人真空吸塵器。
- ESRI在其流行的GIS地圖產品中使用Python做爲終端用戶的定製工具。
- NSA在加密和只能分析中使用Python
- IronPort電子郵件服務器產品中使用了超過100萬行的Python代碼實現其做業。
- OLPC使用Python創建其用戶界面和動做模塊。