跟幾個IT界的大佬提起python,他們說零基礎(chǔ)學好python很簡單,python進階需要花費寫氣力,都說Python簡單易學,那么零基礎(chǔ)如何學好Python?有哪些必須學的知識?學習的策略技巧有哪些?今天這篇文章將會給你啟發(fā)。
Python上手很容易,基本有其他語言編程經(jīng)驗的人可以在1周內(nèi)學會Python最基本的內(nèi)容。(PS:沒有基礎(chǔ)的人也可以直接學習,速度會慢一點)
它們包括:
1、常用內(nèi)置類型(int, float, bool, bytes, str, list, dict, set)的使用。
2、分支if-else 循環(huán)while 迭代for的語法。
3、def定義函數(shù),調(diào)用函數(shù)。
你再花1周學習些:
1、類
2、異常
此時,有些人就在簡歷中得意的自稱"會"Python了。
但是學到如此程度, 在實際編程中會經(jīng)常遇到挫折, 主要源自理解不夠深入, 僅僅Python語法和API層面體驗了一下。
隨意列舉一些新手普遍存在的問題:
1、不了解Python對象模型, 變量名, 對象概念含混。
2、不了解可變對象和不可變對象, 尤其是int。
3、不了解切片意味著拷貝, 在循環(huán)中大量使用, 影響效率。
4、不了解切片是淺拷貝還是深拷貝。
5、遇到bytes和str(2.7中的str和unicode)就頭暈。
6、經(jīng)常在需要使用is的場景使用==。
7、不了解def是運行時執(zhí)行語句, 并且是賦值語句。
8、類屬性和實例屬性混淆。
9、不了解在函數(shù)中修改可變對象參數(shù)會對調(diào)用者產(chǎn)生影響, 導致莫名其妙錯誤。
10、企圖在函數(shù)中修改全局變量, 沒有使用global, 而創(chuàng)建了本地變量。
11、以可變對象做函數(shù)默認參數(shù)。
擁有某項技能的程序員的價值,可以用學習技能所需的成本來衡量。你用2周學習達到的這種程度,對于企業(yè)就是沒有價值的,因為老板可以讓一個公司里任意其他語言的程序員經(jīng)過2-3周的學習就能達到你現(xiàn)在的程度。
Python的簡潔易用,快速開發(fā)對項目有價值,但這不是你的價值,是Python的價值。所以提高自身價值,也就是不讓別人輕易追上你。以極低的成本替代你。
你只能快跑,進一步學習,Python語言層面還需要學習下面一些內(nèi)容:
1、使用生成器,迭代器
2、函數(shù)式編程,匿名函數(shù)lambda, map, reduce, filter
3、列表解析,字典解析,集合解析,生成器解析
4、運算符重載(setattr, getattr, getitem, gt, lt...)
5、property, 描述符(get, set, delete)
6、上下文管理器(enter, exit)
7、深入理解面向?qū)ο?/p>
上述都是語言層面的,屬于內(nèi)功。實戰(zhàn)中當然也需要一些更為具體的外功,訓練外功可以從熟悉Python標準庫開始,這些模塊能進入標準庫說明他們足夠好并且在實際項目中足夠常用,列舉一些極為常用的:
1、正則表達式 re
2、迭代工具 itertools
3、常用數(shù)據(jù)結(jié)構(gòu) collections, heapq, array
4、處理二進制數(shù)據(jù) struct
5、隨機 random
6、系統(tǒng)調(diào)用 os
7、Python對象序列化 pickle
8、多進程多線程處理 threading, multiprocessing
9、網(wǎng)絡(luò) socket, urllib
10、系統(tǒng)參數(shù) sys
無論練習內(nèi)功或外功,結(jié)合實戰(zhàn)都是最 好的訓練方式和檢驗手段,可以根據(jù)個人情況以及喜好選擇,如:
1、使用django, flask開發(fā)網(wǎng)站。
2、開發(fā)網(wǎng)絡(luò)爬蟲或使用Python爬蟲框架(如scrapy)。
3、寫一些自動化運維腳本,定時讀取某軟件log,出現(xiàn)異常自動發(fā)郵件。
4、使用selenium對網(wǎng)站進行測試。
5、使用Python開發(fā)樹莓派小車(電機,傳感器驅(qū)動)。
6、使用Python開發(fā)Vim插件,如在vim中做一個音樂播放器。
7、使用Python做算法題,如leetcode。
8、opencv做圖像識別
9、使用numpy和pandas做數(shù)據(jù)處理。
10、使用機器學習庫sklearn, tensorflow做應用。
11、使用PyQt編寫桌面應用。
12、使用scipy, matplotlib做科學計算。
14、使用Python做滲透測試。
......
個人建議選擇小項目進行實訓,有些新手上來就想定一個大目標,做的時候很挫折, 往往半途而廢.把小東西先實現(xiàn),然后優(yōu)化。接下來添加新功能,慢慢迭代把小東西做大。這樣在做的時候,每實現(xiàn)一個小功能你都會有成就感,激勵繼續(xù)前進。
可能經(jīng)過比較漫長的一段時間,你成為了一個熟練的Python應用程序員,還有些高級話題可以繼續(xù)學習:
1、裝飾器
2、元類
這些高級話題在開發(fā)框架中經(jīng)常使用, 它們可以幫你創(chuàng)建更靈活的代碼。
通常自稱一個月光速學了會Python的人基本都不是天才,只是浮躁,目標定的比較低而已。
不要太過急功近利,慢慢玩,精進。
如果你覺著編程有趣,成長也就不再痛苦,祝學習愉快。
最 后,如果你是一個純純的小白,那么自學是不太現(xiàn)實的,趕緊來找我們python培訓機構(gòu)的老師學習,詳盡的python培訓課程,從python編程基礎(chǔ)入門,到項目實戰(zhàn)......
免責聲明:內(nèi)容和圖片源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。