· 正 · 文 · 來 · 啦 ·
Python語言目前主要應(yīng)用在web、大數(shù)據(jù)以及機器學(xué)習(xí)等領(lǐng)域的開發(fā)上,掌握Python語言是第一步,接著要針對這些領(lǐng)域做一些具體的案例開發(fā),這些案例開發(fā)練習(xí)對求職是有很大幫助的。
下面我從兩個大方面來描述Python,一方面描述Python語言的基本語法內(nèi)容,另一方面描述一下在不同的開發(fā)領(lǐng)域需要掌握哪些開發(fā)內(nèi)容。
學(xué)習(xí)Python語言
Python語言比較簡單,即使沒有計算機語言基礎(chǔ)也能在較短的時間內(nèi)掌握Python的使用。Python語言基本內(nèi)容包括以下幾個大的方面:
Python語言簡介、搭建Python開發(fā)環(huán)境。
Python語言的數(shù)據(jù)類型、表達式、運算符等基礎(chǔ)語法內(nèi)容
字符串、列表、元組以及字典
流程控制 面向?qū)ο箝_發(fā)
異常處理
IO、多線程
網(wǎng)絡(luò)編程
數(shù)據(jù)庫編程
經(jīng)過以上內(nèi)容的學(xué)習(xí)基本上就掌握了Python的基本開發(fā)過程,再做幾個綜合性的實驗就可以了。
使用Python做Web開發(fā)
使用Python做Web開發(fā)是比較常見的,作為Web開發(fā)比較流行的解決方案(還有PHP和Java),Python語言的突出特點是開發(fā)速度快。不論使用什么語言進行Web開發(fā)基本上都遵循一個統(tǒng)一的開發(fā)流程,因為Web本身的請求處理流程是統(tǒng)一的。在整體結(jié)構(gòu)上也基本上都遵循MVC(模型-視圖-控制器)模式來搭建,大部分的功能組件是統(tǒng)一的。
Web開發(fā)通常也都采用框架來完成,比如Java會采用SpringMVC或者Struts等,Python也不例外。比較流行的Python開發(fā)框架有Django、TurboGears、Zope以及Pylons等。
幾乎所有使用Python做Web開發(fā)的程序員都使用過Django框架,它功能強大、模版強大、社區(qū)強大、擴展能力強,幾乎能做你想做的所有事情,甚至可以不編寫代碼就能完成一個網(wǎng)站的創(chuàng)建。所以如果要使用Python做Web開發(fā)一定要學(xué)習(xí)一下Django,當然學(xué)習(xí)其他幾個框架也可以,都是大同小異。
使用Python做大數(shù)據(jù)和機器學(xué)習(xí)開發(fā)
通常大數(shù)據(jù)和機器學(xué)習(xí)并不分家,雖然我們通常把大數(shù)據(jù)和機器學(xué)習(xí)分開搞。比較常見的一個應(yīng)用是使用Python做個網(wǎng)絡(luò)爬蟲,幾乎所有學(xué)習(xí)過Python的程序員都有過做爬蟲的經(jīng)歷。
當然,做爬蟲只是第一步,接著要對數(shù)據(jù)進行分析處理,這個時候Python的優(yōu)勢就體現(xiàn)出來了。其實在數(shù)據(jù)分析這個領(lǐng)域,Python和R一直是程序員比較常見的選擇,因為夠簡單。
同樣,做大數(shù)據(jù)和機器學(xué)習(xí)也需要使用強大的Python庫,有5個比較常見的庫:
1、Numpy庫
這個庫是做大數(shù)據(jù)和機器學(xué)習(xí)領(lǐng)域一定要掌握的,因為這個庫太重要了。我從使用java轉(zhuǎn)向使用Python做機器學(xué)習(xí)的時候,第一個接觸的庫就是Numpy庫,這個庫能讓你深刻理解一句流行在Python開發(fā)圈的名言:Life is short you need Python(人生苦短,我用Python)。Numpy庫的主要作用是做各種計算,需要一些線性代數(shù)和概率論的數(shù)學(xué)基礎(chǔ),但是并不復(fù)雜。
2、Scipy庫
這個庫本身依賴于Numpy庫,提供了更為靈活的操作N維向量數(shù)組的方式。同時Scipy也提供了模塊來為線性代數(shù)、積分以及其他科學(xué)計算任務(wù)提供服務(wù)。
3、Pandas庫
這個庫是使用Python做大數(shù)據(jù)分析最常見的庫,它讓Python做大數(shù)據(jù)分析變得快速且簡單。
4、Matplotlib庫
這個庫的主要作用是繪制各種圖表,可以繪制出各種專業(yè)的圖形,是Python不可或缺的可視化模塊。我第一次使用Matplotlib是在做決策樹實驗時,使用它來繪制樹形結(jié)構(gòu)。
5、Scikit-learn庫
專門用于機器學(xué)習(xí)的模塊,構(gòu)建在Scipy庫之上。它提供了一套常見的機器學(xué)習(xí)算法的實現(xiàn),程序員可以通過接口來完成調(diào)用,非常方便。