Python作為一門(mén)新型的編程語(yǔ)言(一般常用作腳本語(yǔ)言)很受歡迎,畢竟相對其他的編程語(yǔ)言(Java ,C#等)來(lái)說(shuō)比較容易入手。那么,在學(xué)習玩入門(mén)Python的時(shí)候,應該從哪方面入手,學(xué)習流程是怎樣的呢?以下是小編為你整理的如何學(xué)習python系統 ?
基礎知識:學(xué)習每一種新的編程語(yǔ)言都是從最基本的開(kāi)始,對于python而言也是需要先學(xué)習其基礎知識。
python的基礎知識包括:變量和數據類(lèi)型,List和Tuple,條件判斷和循環(huán),Dict和Set, 函數,切片,迭代和列表生成式。 ?
注意:學(xué)習基礎知識切莫著(zhù)急,一定要打好基礎,這樣才會(huì )更好的應用python。 ?
進(jìn)階知識:學(xué)完掌握基礎知識之后,就要學(xué)習進(jìn)階知識了。 ?
python的進(jìn)階知識包括:函數式編程,模塊,面向對象編程基礎,類(lèi)的繼承和定制類(lèi)。 ?
python裝飾器:裝飾器是很重要的一個(gè)知識點(diǎn)。 ?
關(guān)于裝飾器需要涉及到函數作用域.閉包的使用和裝飾器的概念及使用。 ?
如何搭建環(huán)境
學(xué)習爬蟲(chóng)首先學(xué)習Python,建議通過(guò)**mooc和《笨方法學(xué)Python》來(lái)實(shí)現入門(mén),那本書(shū)的內容可以有所取舍。通過(guò)這兩個(gè)途徑再上網(wǎng)上針對性地查找相關(guān)內容完全可以入門(mén),重點(diǎn)在于理解“面向對象”。 ?
爬蟲(chóng)入門(mén)首先要明白一些網(wǎng)絡(luò )技術(shù),了解TCP/IP參考模型,并且對應用層的HTTP協(xié)議的方法和工作原理有一定的認識。爬蟲(chóng)爬取網(wǎng)頁(yè)內容,大多數網(wǎng)頁(yè)服務(wù)由HTTP協(xié)議實(shí)現。 ?
正式學(xué)習爬蟲(chóng)庫urllib和正則表達式,urllib靈活性很高,并且和你所學(xué)的網(wǎng)絡(luò )原理、HTTP原理非常貼合,利于新手學(xué)習,正則表達式看看內容,再看幾個(gè)實(shí)例就應該會(huì )用了,不推薦看亂七八糟的教程和MOOC(效果非常差,講的跨度太大),推薦書(shū)籍《精通Python網(wǎng)絡(luò )爬蟲(chóng) 核心技術(shù)、框架與項目實(shí)戰 》(韋瑋)。同樣是選擇性的閱讀。 ?
學(xué)習完成之后,多加實(shí)踐,推薦實(shí)戰項目:1、爬取漫畫(huà)網(wǎng)上的一部漫畫(huà)的所有圖片,并用PowerPoint做成PDF 2、爬取電影下載網(wǎng)站上的所有電影下載鏈接并整理到Excel。能獨立完成這兩個(gè)實(shí)戰項目,恭喜你已經(jīng)成功入門(mén)! ?
常見(jiàn)的函數應用
交換變量 ?
x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6 ?
if 語(yǔ)句在行內
print "Hello" if True else "World"
>>> Hello ?
連接
下面的*一種方式在綁定兩個(gè)不同類(lèi)型的對象時(shí)顯得很cool。 ?
nfc = ["Packers", "49ers"] ?
afc = ["Ravens", "Patriots"] ?
print nfc + afc ?
>>> ['Packers', '49ers', 'Ravens', 'Patriots'] ?
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
數字技巧
#除后向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32
注意浮點(diǎn)數的除法
print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0 ?
數值比較 ?
這是我見(jiàn)過(guò)諸多語(yǔ)言中很少有的如此棒的簡(jiǎn)便法 ?
x = 2
if 3 > x > 1:
print x
>>> 2
if 1 < x > 0:
print x
>>> 2
5 ?
同時(shí)迭代兩個(gè)列表 ?
nfc = ["Packers", "49ers"] ?
afc = ["Ravens", "Patriots"]
?
for teama, teamb in zip(nfc, afc): ?
print teama + " vs. " + teamb ?
>>> Packers vs. Ravens ?
>>> 49ers vs. Patriots ?
Web方向的練手項目
這個(gè)其實(shí)是肯定不用多少的了。Python的練手項目就是可以做一個(gè)網(wǎng)站了。我們可以做一個(gè)屬于自己的博客。在做博客的時(shí)候,我們可以鞏固的知識點(diǎn)是 ?
Html+CSS+JS的基礎知識,以及熟練的運用Python的Web開(kāi)發(fā)框架(例如Django或者Flask)做出一個(gè)屬于自己的網(wǎng)站。 ?
也就是我們常說(shuō)的網(wǎng)絡(luò )爬蟲(chóng)??梢哉业揭粋€(gè)自己喜歡的網(wǎng)站。試著(zhù)抓取一些網(wǎng)站數據,在抓取數據的過(guò)程中,你會(huì )遇到例如 反抓取 需要登陸 驗證碼驗證以及IP檢測等多種問(wèn)題。但這恰恰不就是提高的過(guò)程么?;蛟S,你也可能寫(xiě)一個(gè)自己的“小百度”呢、 ?
不要覺(jué)得太難。我們可以從一個(gè)簡(jiǎn)單的項目開(kāi)啟。驗證碼就是一個(gè)圖片。我們是不是可以試著(zhù)識別一下驗證碼上面的文字?不要覺(jué)得麻煩,也不要覺(jué)得太過(guò)簡(jiǎn)單。所有復雜的事情都是從簡(jiǎn)單開(kāi)始的。學(xué)習驗證碼識別對于我們寫(xiě)網(wǎng)絡(luò )爬蟲(chóng)是不是特別有用呢?在后期深入的過(guò)程中,你還可以做一個(gè)圖像識別軟件。 ?
是不是覺(jué)得現在手機軟件中的智能聊天軟件很神奇。你同樣可以做一個(gè)屬于自己的聊天機器人。前期我們可以做一個(gè)應答式的,也就是所有的會(huì )話(huà)就是存儲在數據庫中。后期的話(huà)可以學(xué)習人工智能學(xué)習。讓你的機器人更加智能。 ?
使用Python你可以非常方便的實(shí)現一個(gè)網(wǎng)絡(luò )服務(wù)器和瀏覽器的功能。通過(guò)網(wǎng)絡(luò )編程項目的實(shí)踐。對于網(wǎng)絡(luò )應用以及網(wǎng)絡(luò )協(xié)議的理解將會(huì )是一個(gè)非常寶貴的經(jīng)驗。 ?
隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展。深度學(xué)習 區塊鏈等等高新技術(shù)詞匯涌入我們的眼前。Python現在的主要方向也正是向著(zhù)人工智能方向邁進(jìn)。所以一些人工智能的算法以及人工智能框架的學(xué)習 也同樣的是我們可以作為練手的項目。