在學(xué)習(xí)完P(guān)ython的基礎(chǔ)知識(shí)之后,有很多朋友為自己接下來(lái)要干什么感到迷茫。不知道應(yīng)該通過(guò)什么樣的項(xiàng)目來(lái)鍛煉自己編程水平和思維能力。接下來(lái)我就給大家說(shuō)幾個(gè)適合Python的新手項(xiàng)目和練手項(xiàng)目,Python練手項(xiàng)目有哪些 跟我往下看。以下是小編為你整理的自學(xué)python教程 ?
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)站。
做一個(gè)網(wǎng)絡(luò)數(shù)據(jù)抓取工具 ?
也就是我們常說(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,你也可能寫(xiě)一個(gè)自己的“小百度”呢、 ?
做一個(gè)圖像識(shí)別的項(xiàng)目 ?
不要覺(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ì)于我們寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)是不是特別有用呢?在后期深入的過(guò)程中,你還可以做一個(gè)圖像識(shí)別軟件。 ?
做一個(gè)Python聊天機(jī)器人 ?
是不是覺(jué)得現(xiàn)在手機(jī)軟件中的智能聊天軟件很神奇。你同樣可以做一個(gè)屬于自己的聊天機(jī)器人。前期我們可以做一個(gè)應(yīng)答式的,也就是所有的會(huì)話(huà)就是存儲(chǔ)在數(shù)據(jù)庫(kù)中。后期的話(huà)可以學(xué)習(xí)人工智能學(xué)習(xí)。讓你的機(jī)器人更加智能。 ?
指令的調(diào)用
有的時(shí)候我們可以有其他的方法需要調(diào)用類(lèi)中的信息,但是每次都執(zhí)行一次就會(huì)感覺(jué)很繁瑣 比如: ?
def Print_score(std): print ('%s:%s'% (std.name ,std.score))print Print_score(bat) ?
上面我們可以看出通過(guò)定義成績(jī)表我們調(diào)用到了學(xué)生的姓名和成績(jī),我們可以通過(guò)函數(shù)來(lái)訪(fǎng)問(wèn)這些數(shù)據(jù)。但是每個(gè)實(shí)例都有的話(huà)執(zhí)行起來(lái)就要寫(xiě)很多的代碼。我們可以通過(guò)封裝的方式把類(lèi)中需要的給直接封裝在類(lèi)中進(jìn)行調(diào)用。 ?
好的 是這樣,我們可以從外部直接調(diào)用類(lèi)中的方法。相當(dāng)于是封裝了邏輯,直接在類(lèi)的內(nèi)部定義好了,調(diào)用會(huì)感覺(jué)比較容易。封裝的另外一個(gè)好處,我們可以給Student這個(gè)類(lèi)增加新的方法,比如get_grade: ?
def get_grade(self): if self.score > 90: return 'A' elif self.score >= 60: return 'B' else: return 'C' ?
python應(yīng)用特性
數(shù)據(jù)類(lèi)型 ?
常用的數(shù)據(jù)類(lèi)型:數(shù)字(number),字符串(string),list(數(shù)組),tuple(元組),dict(字典) ?
數(shù)字(number) ?
數(shù)字主要有:int(有符號(hào)整型),long(長(zhǎng)整型),float(浮點(diǎn)數(shù)),complex(復(fù)數(shù)) ?
var1 = 1(int) ?
var2 = 51924361L(long) ?
var3 = 1.2(float) ?
var4 = 3e+26J(complex) ?
字符串 ?
字符串是使用單引號(hào)或者雙引號(hào)標(biāo)識(shí)起來(lái)的,單引號(hào)或者雙引號(hào)內(nèi)部可以放數(shù)字、字母、下劃線(xiàn) ?
str1 = "123456789" ?
str2 = '我們都在學(xué)Python'
?
數(shù)組和元組 ?
List(列表)和Tuple(元組) 是 Python 中使用最頻繁的數(shù)據(jù)類(lèi)型。 ?
列表可以完成大多數(shù)集合類(lèi)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(即嵌套)。 ?
列表用 [ ] 標(biāo)識(shí),是 python 最通用的復(fù)合數(shù)據(jù)類(lèi)型。 ?
元組用()標(biāo)識(shí) , 內(nèi)部元素用逗號(hào)隔開(kāi)。但是元組不能二次賦值,相當(dāng)于只讀列表。 ?
List(列表)和Tuple(元組) 區(qū)別:List是可變序列,Tuple是不可變序列 ?
說(shuō)白了就是List增刪改查都可以,但是tuple只能查看(不可變嘛) ?
字典 ?
字典嘛,就是根據(jù)鍵(key)去查找值(value) ?
?
開(kāi)發(fā)環(huán)境準(zhǔn)備 這里我選用Visual Studio 2017作為Python的開(kāi)發(fā)工具,要求在Visual Studio中安裝Python環(huán)境支持
在進(jìn)行機(jī)器學(xué)習(xí)開(kāi)發(fā)時(shí)我們需要給python環(huán)境安裝所需要的外部依賴(lài)包
sklearn,numpy,spicy
引入sklearn包,創(chuàng)建數(shù)據(jù)特征模型
from sklearn import tree
#特征模型數(shù)據(jù),[身高,胡子] 1-有 0-無(wú)
feature =[[178,1],[155,0],[180,1],[166,0],[168,1],[152,0]]
#特征標(biāo)簽值
label=['male''female','fale','female','fale','female']
我們采用決策樹(shù)進(jìn)行分類(lèi)預(yù)測(cè)
#創(chuàng)建一個(gè)決策樹(shù)對(duì)象
clf = tree.DecisionTreeClassifier();
#將特征數(shù)據(jù)交個(gè)決策樹(shù)進(jìn)行判斷
clf = clf.fit(feature,label)
進(jìn)行新的數(shù)據(jù)預(yù)測(cè)
#預(yù)測(cè)一組新的數(shù)據(jù)
clf.predict([[158,0]])
clf.predict([[190,1]])
完成的Python的代碼如下:
from sklearn import tree
#特征模型數(shù)據(jù),[身高,胡子] 1-有 0-無(wú)
feature =[[178,1],[155,0],[180,1],[166,0],[168,1],[152,0]]
#特征標(biāo)簽值
label=['male','female','fale','female','fale','female']
#創(chuàng)建一個(gè)決策樹(shù)對(duì)象
clf = tree.DecisionTreeClassifier();
#將特征數(shù)據(jù)交個(gè)決策樹(shù)進(jìn)行判斷
clf = clf.fit(feature,label)
#預(yù)測(cè)一組新的數(shù)據(jù)
r1=clf.predict([[158,0]])
print("Data[158,0] is label for:")
print(r1)
r2=clf.predict([[190,1]])
print("Data[190,1] is label for:")
print(r1)