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