您好,登錄后才能下訂單哦!
自學(xué)python語言需要注意哪些?隨著python語言的火熱發(fā)展,很多人都想學(xué)python,而對于想自己學(xué)python的人,小編總結(jié)了幾點(diǎn)建議,希望看完這篇文章你能有所收獲。
1. 了解新語言產(chǎn)生的背景
ABC 是專門為非專業(yè)程序員設(shè)計的一種教學(xué)語言,但是由于其封閉,并未取得成功。1989年的圣誕節(jié)期間,吉多·范羅蘇姆開發(fā)了一個新的腳本解釋器,并命名為 Python,作為 ABC 語言的一種繼承。新的腳本解釋器開放,完美結(jié)合了 Unix Shell 和 C 的使用習(xí)慣。
2. 了解新語言應(yīng)用的場景
· 網(wǎng)站后臺
有大量成熟的框架,如Django,F(xiàn)lask,Tornado
· 網(wǎng)絡(luò)爬蟲
Python 寫爬蟲有很多庫可用,如Scrapy,Beautiful Soup
· 科學(xué)計算
可以替代 R 語言和 Matlab,如 NumPy, SciPy, Matplotlib, Pandas
·數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí),大數(shù)據(jù)
Scikit-learn,Libsvm,TensorFlow
· 系統(tǒng)部署,運(yùn)維腳本
Shell 適合簡單的系統(tǒng)管理工作,但涉及復(fù)雜的自動化任務(wù)還是需要 Python。
3. 了解新語言的特點(diǎn)
Python 的設(shè)計哲學(xué)是:優(yōu)雅、明確、簡單。Python 的開發(fā)哲學(xué)是:用一種方法,最好是只有一種方法來做一件事,有些類似 Unix。與其他語言非常不一樣的是,Python 以縮進(jìn)來確定語句塊。
Python 是一門面向?qū)ο蟮膭討B(tài)、解釋型語言,具有出色的模塊化特性。同時,Python 擁有大量的第三方開源包,可以直接使用,極大地提高了開發(fā)效率。Python 編寫的代碼,可讀性強(qiáng),特別適合多人大型項目的開發(fā)。但是 Python 的執(zhí)行效率比不上 C/C++ 這類編譯型語言。
4. 學(xué)習(xí)新語言的數(shù)據(jù)結(jié)構(gòu)
Python 中內(nèi)置類型有整型 int,浮點(diǎn)型 float,布爾型 bool,字符串 str,列表 list,元組tuple,字典 dict,集合 set。與 C 不同的是,Python 并不依賴于關(guān)鍵字定義各種類型。Python 是動態(tài)強(qiáng)類型語言,是通過運(yùn)行時,自動選擇合適的數(shù)據(jù)類型。字符串、列表、元組、集合、字典等復(fù)雜數(shù)據(jù)類型,并不是 C 語言的內(nèi)置類型。
5. 學(xué)習(xí)新語言的邏輯結(jié)構(gòu)
if 條件判斷結(jié)構(gòu)
condition = 1if condition == 1:
print 1elif condition == 2:
print 2else:
print 3
for 循環(huán)結(jié)構(gòu)
items = ['item1', 'item2', 'item3']for item in items:
print item
while 循環(huán)結(jié)構(gòu)
sum, n = 0, 10while n > 0:
sum = sum + n
n = n - 2print sum
Keywords: if; for; while;
6. 學(xué)習(xí)定義一個獨(dú)立模塊
定義函數(shù)
def function_name(x):
return -x
定義類
class ClassName: #經(jīng)典類、舊類
def __init__(self):
pass
class NewClassName(object): #新類
def __init__(self):
pass# 在多繼承中,新式類采用廣度優(yōu)先搜索,而舊式類是采用深度優(yōu)先搜索。
定義包:
Python 中定義一個包,只需要在文件夾里面,創(chuàng)建一個 __init__.py文件即可,如:
mypackage/__init__.py
mypackage/test.py
mypackage/views.py
那么在其他文件中,就可以通過from mypackage import views的語法,從 mypackage 這個包里面導(dǎo)入 views 。
7. 做一個小的項目
嘗試完成一次領(lǐng)域?qū)嵺`,是對這個領(lǐng)域最佳的入門方式。學(xué)習(xí)一門新的編程語言,成長最快的階段在,利用這門編程語言完成項目需求期間。
Django 是一個十分優(yōu)秀的 Python 寫的 Web 程序框架,廣泛用于數(shù)據(jù)驅(qū)動類的網(wǎng)站開發(fā)。Django 是一個大而全的開發(fā)框架,基本不需要額外的第三方配置,就可以快速地進(jìn)行開發(fā)。
筆者的小項目需求是:利用二維碼掃碼,查看在線簡歷。
確定項目需求之后,會迎來一個手足無措的時期,不知道從哪里著手開始做項目。如果有一個過來人指導(dǎo)一下,那么很快就能開始編碼了。不幸的是,筆者當(dāng)時身邊并沒有這樣一個人。在網(wǎng)上查閱資料后,最終選定了Jquery 、Foundation、Django 實現(xiàn)這個項目。
實際上,筆者在此之前一直在寫 C++ 程序,并沒有 Python 的編程基礎(chǔ),僅僅是因為這個小項目,選定的技術(shù)棧后臺使用的是 Django ,才開始學(xué)習(xí) Python。
除了掌握項目使用到的技術(shù)棧,在完成項目的過程中,還可以解鎖調(diào)試技能、通過搜索引擎解決各種程序問題的能力。
為了完成這個小項目,需要走出舒適區(qū),突破原有的技術(shù)棧,最終獲得快速的技術(shù)成長。
8. 學(xué)習(xí)使用庫完成任務(wù)
通常,發(fā)布者會將使用頻率高、可以復(fù)用的功能,打包成庫,提供給大家共同使用。
庫可以分為兩類:
一種是官方的庫,通常質(zhì)量比較高、會維護(hù)更新;
一種是第三方的庫,質(zhì)量參差不齊,需要自己甄別。
例如,Django 中提供了 from django.views.decorators.http import require_POST 裝飾器用于確保 view 函數(shù)的請求方法是 POST。使用這個裝飾器可以簡化 view 函數(shù)中的條件判斷,有利于編寫簡潔易讀的代碼。當(dāng)然 ,Django 還有大量的第三方 App可以下載使用,直接提供一個完整功能。
在項目開發(fā)的過程中,合理地使用庫會起到錦上添花的效果。
9. 學(xué)習(xí)組織代碼結(jié)構(gòu)
研究怎樣更好的組織項目的代碼是一門管理科學(xué)。筆者之前也寫過相關(guān)的文章
討論了 Django 工程的目錄組織結(jié)構(gòu)。
好的項目代碼結(jié)構(gòu)需要學(xué)習(xí)一些高關(guān)注度的開源項目的經(jīng)驗,也需要注意輸出,成為大家共同的標(biāo)準(zhǔn),共同維護(hù),產(chǎn)生影響力。
10. 學(xué)習(xí)讓代碼易維護(hù)
代碼維護(hù)分為兩類:
· Bug 易修復(fù),需要代碼具有良好的命名習(xí)慣、注釋、日志輸出,實現(xiàn)相同的功能編寫盡量少的代碼
· 新功能的擴(kuò)展,通常是在原有邏輯上,創(chuàng)建新的分支。這類分支又可以分為代碼級別和常量級別。我們需要的是通過常量的配置擴(kuò)展新功能,而減少代碼級別的修改
11. 提高代碼復(fù)用率
隨著使用新語言年限的增長,參與項目的增多,會出現(xiàn)一個顯而易見的問題:在不同的項目中,會有一些非常類似的功能。甚至在開發(fā)新項目時,有時還會去以前項目中拷貝代碼。
這時,應(yīng)該思考如何提高代碼的復(fù)用率,如何提供公共組件。
代碼的復(fù)用可以分為:
代碼片段(Snippets)
維護(hù)一個 Snippets List 是個不錯的注意
公共組件(Components)
公共組件需要從項目中分離,會有一定的工作量,但收益很大
從項目中分離公共組件的過程,需要關(guān)注模塊內(nèi)的高內(nèi)聚,模塊間的低耦合。在模塊分離的過程中,我們會更加深入地去理解應(yīng)用系統(tǒng)。這一過程的完成,又將極大地提高開發(fā)效率。
更重要的是,我們不僅僅從項目中分離出一個公共組件,在使用其他人提供的公共組件時,也會變得容易。
下一次項目開發(fā)時,需要一個新功能,你首先想到的可能不是編碼,而是去公共組件庫或 Github 搜索有沒有類似的包,然后經(jīng)過簡單的改造就能在項目使用。
12. 關(guān)注性能
針對 Web 應(yīng)用,高并發(fā)、高可用、高一致性始終是亙古不變的議題。在對應(yīng)用系統(tǒng)不斷發(fā)起挑戰(zhàn)時,那些隱藏的曾經(jīng)被忽略的問題才會逐漸顯現(xiàn)。在這個過程中,不斷地發(fā)現(xiàn)應(yīng)用系統(tǒng)的瓶頸,解決這些瓶頸,循環(huán)往復(fù),不斷加深對業(yè)務(wù)、對應(yīng)用系統(tǒng)的理解。
性能報告是性能測試輸出的結(jié)果。性能報告就像質(zhì)檢報告一樣,是讓用戶信任和使用產(chǎn)品的憑證。高并發(fā)、高可用、高一致,并不是口號,需要數(shù)據(jù)的舉證,需要不斷的優(yōu)化性能。
關(guān)于自學(xué)python的建議就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。