為什麼學Python?一文看懂Python主要應用領域和就業前景
Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種面向物件的解釋型計算機程式設計語言,由荷蘭人Guidovan Rossum於1989年發明,第一個公開發行版發行於1991年。需要Python學習視訊資料和直播免費公開課,可以加我QQ群
Python是純粹的自由軟體,原始碼和直譯器CPython遵循GPL
(GNUGeneralPublicLicense)協議。Python語法簡潔清晰,特色之一是強制用空白符(whitespace)作為語句縮排。零基礎到大牛歡迎加入660886944
Python具有豐富和強大的庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地聯結在一起。常見的一種應用情形是,使用Python快速生成程式的原型(有時甚至是程式的最終介面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模組,效能要求特別高,就可以用C/C++重寫,而後封裝為Python可以呼叫的擴充套件類庫。需要注意的是在您使用擴充套件類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。
Python的特點
1、Python使用C語言開發,但是Python不再有C語言中的指標等複雜的資料型別。
2、Python具有很強的面向物件特性,而且簡化了面向物件的實現。它消除了保護型別、抽象類、介面等面向物件的元素。
3、Python程式碼塊使用空格或製表符縮排的方式分隔程式碼。
4、Python僅有31個保留字,而且沒有分號、begin、end等標記。
5、Python是強型別語言,變數建立後會對應一種資料型別,出現在統一表達式中的不同型別的變數需要做型別轉換。
Python搭建開發環境
1、可以到www.python.org下載安裝包,然後通過configure、make、makeinstall進行安裝。
2、也可以到www.activestate.com去下載ActivePython元件包。(ActivePython是對Python核心和常用模組的二進位制包裝,它是ActiveState公司釋出的Python開發環境。ActivePython使得Python的安裝更加容易,並且可以應用在各種作業系統上。ActivePython包含了一些常用的Python擴充套件,以及Windows環境的程式設計介面)。對ActivePython來說,如果你是windows使用者,下載msi包安裝即可;如果你是Unix使用者,下載tar.gz包直接解壓即可。
3、Python的IDE,包括PythonWin、Eclipse+PyDev外掛、Komodo、EditPlus。
Python的應用
- 系統程式設計:提供API
- (ApplicationProgrammingInterface應用程式程式設計介面),能方便進行系統維護和管理,Linux下標誌性語言之一,是很多系統管理員理想的程式設計工具。
- 圖形處理:有PIL、Tkinter等圖形庫支援,能方便進行圖形處理。
- 數學處理:NumPy擴充套件提供大量與許多標準數學庫的介面。
- 文字處理:python提供的re模組能支援正則表示式,還提供SGML,XML分析模組,許多程式設計師利用python進行XML程式的開發。
- 資料庫程式設計:程式設計師可通過遵循PythonDB-API(資料庫應用程式程式設計介面)規範的模組與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等資料庫通訊。python自帶有一個Gadfly模組,提供了一個完整的SQL環境。
- 網路程式設計:提供豐富的模組支援sockets程式設計,能方便快速地開發分散式應用程式。很多大規模軟體開發計劃例如Zope,Mnet及BitTorrent.Google都在廣泛地使用它。
- Web程式設計:應用的開發語言,支援最新的XML技術。
- 多媒體應用:Python的PyOpenGL模組封裝了“OpenGL應用程式程式設計介面”,能進行二維和三維影象處理。PyGame模組可用於編寫遊戲軟體。
- pymo引擎:PYMO全稱為pythonmemoriesoff,是一款運行於SymbianS60V3,Symbian3,S60V5,Symbian3,Android系統上的AVG遊戲引擎。因其基於python2.0平臺開發,並且適用於建立秋之回憶(memoriesoff)風格的AVG遊戲,故命名為PYMO。
- 黑客程式設計:python有一個hack的庫,內建了你熟悉的或不熟悉的函式,但是缺少成就感。
- 用Python寫簡單爬蟲
通過上面這三句就可以將URL的原始碼存在content變數中,其型別為字元型。
接下來是要從這堆HTML原始碼中提取我們需要的內容。用Chrome檢視一下對應的內容的程式碼(也可以用Firefox的Firebug)。
可以看到url的資訊儲存在span標籤中,要獲取其中的資訊可以用正則式。
Python的應用場景
- Web應用開發
Python經常被用於Web開發。比如,通過mod_wsgi模組,Apache可以執行用Python編寫的Web程式。Python定義了WSGI標準應用介面來協調Http伺服器與基於Python的Web程式之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程式設計師輕鬆地開發和管理複雜的Web程式。
- 作業系統管理、伺服器運維的自動化指令碼
在很多作業系統裡,Python是標準的系統元件。大多數Linux發行版以及NetBSD、OpenBSD和MacOSX都集成了Python,可以在終端下直接執行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,RedHatLinux和Fedora的Anaconda安裝器。GentooLinux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個呼叫作業系統功能的庫。通過pywin32這個第三方軟體包,Python能夠訪問Windows的COM服務及其它WindowsAPI。使用IronPython,Python程式能夠直接呼叫.NetFramework。一般說來,Python編寫的系統管理指令碼在可讀性、效能、程式碼重用度、擴充套件性幾方面都優於普通的shell指令碼。
- 科學計算
NumPy,SciPy,Matplotlib可以讓Python程式設計師編寫科學計算程式。
- 桌面軟體
PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程式的利器。
- 伺服器軟體(網路軟體)
Python對於各種網路協議的支援很完善,因此經常被用於編寫伺服器軟體、網路爬蟲。第三方庫Twisted支援非同步網路程式設計和多數標準的網路協議(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高效能的伺服器軟體。
- 遊戲
很多遊戲使用C++編寫圖形顯示等高效能模組,而使用Python或者Lua編寫遊戲的邏輯、伺服器。相較於Python,Lua的功能更簡單、體積更小;而Python則支援更多的特性和資料型別。
- 構思實現,產品早期原型和迭代
YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。
Python的應用方向
1.常規軟體開發
Python支援函數語言程式設計和OOP面向物件程式設計,能夠承擔任何種類軟體的開發工作,因此常規的軟體開發、指令碼編寫、網路程式設計等都屬於標配能力。
2.科學計算
隨著NumPy,SciPy,Matplotlib,
Enthoughtlibrarys等眾多程式庫的開發,Python越來越適合於做科學計算、繪製高質量的2D和3D影象。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程式設計語言,比Matlab所採用的指令碼語言的應用範圍更廣泛,有更多的程式庫的支援。雖然Matlab中的許多高階功能和toolbox目前還是無法替代的,不過在日常的科研開發之中仍然有很多的工作是可以用Python代勞的。
3.自動化運維
這幾乎是Python應用的自留地,作為運維工程師首選的程式語言,Python在自動化運維方面已經深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平臺。
4.雲端計算
開源雲端計算解決方案OpenStack就是基於Python開發的,搞雲端計算的同學都懂的。
5.Web開發
基於Python的Web開發框架不要太多,比如耳熟能詳的Django,還有Tornado,Flask。其中的Python+Django架構,應用範圍非常廣,開發速度非常快,學習門檻也很低,能夠幫助你快速的搭建起可用的WEB服務。
6.網路爬蟲
也稱網路蜘蛛,是大資料行業獲取資料的核心工具。沒有網路爬蟲自動地、不分晝夜地、高智慧地在網際網路上爬取免費的資料,那些大資料相關的公司恐怕要少四分之三。能夠編寫網路爬蟲的程式語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用非常廣泛。
7.資料分析
在大量資料的基礎上,結合科學計算、機器學習等技術,對資料進行清洗、去重、規格化和針對性的分析是大資料行業的基石。Python是資料分析的主流語言之一。
8.人工智慧
Python在人工智慧大範疇領域內的機器學習、神經網路、深度學習等方面都是主流的程式語言,得到廣泛的支援和應用。