今天主要給大家說下一個零基礎(chǔ)的小白,應(yīng)該如何系統(tǒng)化的學(xué)習(xí)python編程語言,然后找到工作,在學(xué)習(xí)的過程不浪費(fèi)時間少走彎路。
首先我們要了解python是什么,是一種面向?qū)ο蟮慕忉屝缘挠嬎銠C(jī)程序設(shè)計語言,也是一種功能強(qiáng)大而完善的通用型語言,已經(jīng)具有十多年的發(fā)展歷史,成熟且穩(wěn)定。語法簡潔清晰,具有豐富和強(qiáng)大的庫。在設(shè)計上堅持清晰劃一風(fēng)格,使得它成為一門易讀、易維護(hù),并且被大量用戶所歡迎的、用途廣泛的語言。
Python的語言特點:簡單,易學(xué),高層語言,面向?qū)ο螅梢浦残裕蓴U(kuò)展性,可嵌入性,還有豐富的庫。
我接觸python的時間雖然只有短短的三個月,但是對Python的興趣是越來越濃,相信如果是你,肯定也會是同樣的感覺。零基礎(chǔ)學(xué)習(xí)Python到底難不難呢?作為同樣是初學(xué)者的我,給大家分享一下我的學(xué)習(xí)心得和總結(jié),零基礎(chǔ)的人,應(yīng)該如何學(xué)習(xí)Python。學(xué)習(xí)一定要是一個堅持的過程,如果三天打魚兩天曬網(wǎng),龜兔賽跑的故事大家都知道,所以學(xué)習(xí)可以慢但不要停。
下面我說下一個零基礎(chǔ)的新手應(yīng)該如何系統(tǒng)化的學(xué)習(xí)Python開發(fā)
第一:
必須有一個老師給自己講解,帶著學(xué)習(xí),這樣首先是可以少走很多的彎路,不至于一個小小的問題,就困擾了一天的時間,可能明白人的一句話你就明白,但是自己想可能需要一天的時間,或許最后還是搞不懂。
第二:
需要有一個明確而且系統(tǒng)的學(xué)習(xí)規(guī)劃,比如你今天學(xué)習(xí)什么內(nèi)容,而且今天學(xué)習(xí)的內(nèi)容跟著什么案例練習(xí),如果你學(xué)習(xí)JAVA只是看看免費(fèi)的視頻,那我勸你還是不要浪費(fèi)時間,必須跟著大量的案例,反正練習(xí),對于一個知識點才可以真正的掌握。
第三:
一個明確的學(xué)習(xí)路線圖,這個我給大家參考一下下面的圖片,分為三個大階段,每一個階段有相應(yīng)的學(xué)習(xí)時間
第四:
學(xué)習(xí)過程是循序漸進(jìn)的過程,你的基礎(chǔ)部分看完了,之后肯定會忘一部分,自己以為看明白了,等到用時候發(fā)現(xiàn)自己還是不知道怎么用,這是必經(jīng)的過程,這時候再回去復(fù)習(xí)基礎(chǔ)知識應(yīng)該有更深入的認(rèn)識,所以要做好長時間學(xué)習(xí)思想準(zhǔn)備,不要因此放棄,不要急于求成。
第五:
要想更好得掌握python,我們的學(xué)習(xí)不能只是停留在學(xué)習(xí)語法階段。我們可以嘗試用python解決我們項目中遇到的一些問題,如果項目不是用python開發(fā)的,那我們可以想想能不能用python制作一些項目組可以使用的一些工具(utility),通過這些工具簡化 項目組成員的任務(wù),提高我們的工作效率。 每天的編碼必不可少,既然選擇學(xué)習(xí)編程,學(xué)習(xí)Python,堅持編碼應(yīng)該是必須做到的
我畢業(yè)于克萊門森大學(xué)政治學(xué)專業(yè)。我曾考慮過是否選擇學(xué)習(xí)計算機(jī)科學(xué)專業(yè),還在大一那年報名參加了“編程概論”課程,不過很快就退出了。實在是太難了。
畢業(yè)后我一直住在硅谷,我發(fā)現(xiàn)我需要學(xué)習(xí)編程。一年后,我成為了eBay公司的一名中級軟件工程師。我不想讓大家覺得這是很輕松就能做到的。實際上,這是極具挑戰(zhàn)的一件事。在這一年的不斷嘗試努力過程中,我得到了很多樂趣。
1.1 自學(xué)的優(yōu)勢雖然與擁有計算機(jī)科學(xué)學(xué)士、碩士甚至是博士學(xué)位的同事一起工作的壓力很大,但別忘記了你還有“自學(xué)的優(yōu)勢”。你選擇學(xué)習(xí)Python編程,不是出于老師布置的任務(wù),而是因為你內(nèi)心學(xué)習(xí)的渴望,這一點是你所擁有的最大優(yōu)勢。蘋果公司的創(chuàng)始人斯蒂夫·沃茲尼亞克(Steve Wozniak)就是一位自學(xué)成才的程序員;還有因在美國宇航局的阿波羅登月計劃中做出卓越貢獻(xiàn)而獲得總統(tǒng)自由勛章的瑪格麗特·漢密爾頓(Margaret Hamilton);還有Tumblr 的創(chuàng)始人大衛(wèi)·卡普(David Karp),Twitter的創(chuàng)始人杰克·多西(Jack Dorsey),Instagram 的創(chuàng)始人凱文·斯特羅姆(Kevin Systrom),他們都是自學(xué)成才的程序員。
1.2 為什么應(yīng)該學(xué)編程不管你從事什么工作,編程都有助于你的職業(yè)發(fā)展。學(xué)習(xí)編程將給你自己賦能。我喜歡嘗試新想法,時刻都有希望啟動的新項目。學(xué)會編程后,我就可以坐下來自己實現(xiàn),而不需要依賴他人。
編程也會提升你在其他方面的技能。因為你熟練掌握了問題解決能力,鮮有其他工作不會因此而受益。我最近要在Craiglist上租房,搜索并篩選房子是個非常費(fèi)力的活兒。但是我寫了一個程序來代替我搜索,最后將結(jié)果以郵件形式發(fā)送給我。學(xué)會編程,將把你從重復(fù)性工作中解放出來。
如果你想成為軟件工程師,市場上對這類崗位的需求也日益增長,但是符合要求的候選者卻總是供不應(yīng)求。到2020年,預(yù)計將有一百萬個編程崗位空缺。即使你的目標(biāo)不是成為軟件工程師,科學(xué)和金融等領(lǐng)域的崗位也開始傾向那些擁有編程經(jīng)驗的申請者。
1.3 沒有編程經(jīng)驗怎么辦?如果你之前沒有任何編程經(jīng)驗,擔(dān)心自己無法勝任編程工作,我想想告訴你的是:你完全有能力做到。人們對程序員有一些常見的誤解,比如程序員都得擅長數(shù)學(xué)。這是錯誤的印象,不過編程確實是一件困難的工作。幸運(yùn)的是,專欄涵蓋的內(nèi)容將讓這一切變得比你想象得更加容易。
為了提高編程技巧,你應(yīng)該每天練習(xí)編程。擋在你面前的唯一障礙就是無法堅持,所以我們要采取一些措施確保自己能夠堅持不懈。準(zhǔn)備一張檢查清單,來確保每天都有做練習(xí),而且也能夠幫助你保持專注。
如果你還需要其他幫助,效率專家Tim Ferris建議采用如下技巧來保持驅(qū)動力。事先給家人或朋友一筆錢,如果你在規(guī)定的時間內(nèi)完成了目標(biāo),就讓他們把錢還給你,否則就將錢捐獻(xiàn)給你討厭的機(jī)構(gòu)。
1.4學(xué)習(xí)前你需要了解《零基礎(chǔ)學(xué)Python》不僅是教你如何使用某種特定的語言編程,還會介紹標(biāo)準(zhǔn)教材中所不包括的其他所有知識點。專欄內(nèi)分享的是我在成為軟件工程師過程中不得不自學(xué)的內(nèi)容。專欄不適合那些想要隨意了解下編程知識、將寫代碼作為愛好的人,而是專門寫給那些希望以編程為職業(yè)的人。不管你的目標(biāo)是成為一名軟件工程師、企業(yè)家,還是在其他的崗位上使用編程技能,你都是專欄的目標(biāo)讀者。
學(xué)會一門編程語言還不夠,你還需要學(xué)會其他技能,才能像計算機(jī)科學(xué)家一樣地工作。我會教授大家我從編程新手到專業(yè)軟件工程師過程中學(xué)到的一切。這個專欄,是為了向有志于編程崗位的人分享他們需要掌握的知識框架。
我經(jīng)常從自學(xué)編程的朋友那聽到這樣的反饋:我現(xiàn)在該做什么?我還不是一名程序員,也不知道下一步該學(xué)什么?因此我設(shè)計了下面的專欄結(jié)構(gòu)。
1.5 專欄的結(jié)構(gòu)我的目標(biāo)不是包羅你需要了解的每個主題的所有細(xì)節(jié),而是提供一份指引——一個編程職業(yè)發(fā)展所需要的所有技術(shù)路線圖。由此我將專欄分成五個部分。
第一部分:編程簡介。讓你盡快寫出自己的第一個程序,最好在今天。
第二部分:面向?qū)ο缶幊毯喗椤_@部分將介紹不同的編程范式,著重闡述面向?qū)ο缶幊獭D銜_發(fā)一個游戲,體會編程的強(qiáng)大能力。讀完這部分后你會沉迷于編程。
第三部分:編程工具簡介。將介紹提升編程生產(chǎn)力的不同工具。這時,你已經(jīng)沉迷于編程,并希望變得更好。你將會學(xué)習(xí)相關(guān)的操作系統(tǒng)、使用正則表達(dá)式提升效率、安裝并管理他人的程序,以及使用版本控制與其他工程師協(xié)作的知識。
第四部分:計算機(jī)科學(xué)簡介。將簡要介紹計算機(jī)科學(xué)知識,主要涵蓋兩個主題——算法和數(shù)據(jù)結(jié)構(gòu)。
第五部分:找到工作。最后一部分是關(guān)于最佳編程實踐,如何找到軟件工程師的工作,團(tuán)隊協(xié)作以及程序員的自我提升。我會分享如何通過技術(shù)面試與團(tuán)隊協(xié)作的建議,以及如何進(jìn)一步提升自己的技能。
1.6 從終點出發(fā)我學(xué)會編程的方式,與計算機(jī)科學(xué)通常的教學(xué)方式正好相反。專欄的結(jié)構(gòu)是根據(jù)我自己的方式組織的。一般來說,你會先花很多時間學(xué)習(xí)理論,理論知識學(xué)的太多以至于許多計算機(jī)科學(xué)的畢業(yè)生甚至不知道如何動手編程。杰夫·阿特伍德(Jeff Atwood),在其博客“為什么程序員不會編程”中寫道:“和我一樣,許多人都碰到了這樣的情況,編程崗位的200位申請者中,有199個根本不會寫代碼。重申一遍:他們一點代碼都不會寫。”這種現(xiàn)象直接促使Atwood發(fā)明了FizzBuzz代碼挑戰(zhàn),一種用來在面試中篩選申請者的編程測試。
《王者之旅》電影中的主角喬什(Josh Waitzkin),在《學(xué)習(xí)的藝術(shù)》一書中回憶了他如何反向?qū)W習(xí)國際象棋。他沒有和其他人一樣研究開局,而是從學(xué)習(xí)象棋殘局(棋盤上只剩下少數(shù)幾個棋子)開始。這樣做讓他對國際象棋有了更深的理解,并贏得了多次大賽冠軍。與此類似,我認(rèn)為先學(xué)習(xí)如何編程再學(xué)習(xí)理論的方法更高效,因為你會擁有了解背后原理的強(qiáng)烈驅(qū)動。這就是為什么專欄一直到第五部分才介紹計算機(jī)科學(xué)理論,而且內(nèi)容也盡量精簡。雖然理論很重要,但是在你擁有了編程經(jīng)驗之后,理論的價值才更大。
1.7 專欄的格式專欄的各個章節(jié)緊密相關(guān)。如果你讀到了某些看不懂的概念,可能在前一章已經(jīng)做了介紹。專欄內(nèi)盡量避免重復(fù)解釋,所以牢記這個特點。在給重點詞匯下定義時,會使用斜體。每個章節(jié)的末尾都有一個詞匯表,對該章內(nèi)出現(xiàn)的斜體名詞進(jìn)行解釋。
專欄代碼段前的注釋為GitHub的網(wǎng)址,讀者可于網(wǎng)站直接復(fù)制代碼。
1.8 專欄使用的技術(shù)為了讓讀者盡可能的積累編程經(jīng)驗,專欄會介紹多種技術(shù)。在某些情況下,必須在許多不同的技術(shù)中做出選擇。在第20章“版本控制”中,我們將會學(xué)習(xí)Git的基礎(chǔ)知識。Git是一個流行的版本控制系統(tǒng),選擇介紹Git是因為筆者認(rèn)為它已經(jīng)成為版本控制的業(yè)界標(biāo)準(zhǔn)。專欄中用Python來編寫大部分的編程示例,因為它是一門很流行的初學(xué)者語言,而且即使從來沒有使用過Python的人學(xué)習(xí)起來也比較簡單。此外,目前幾乎每個領(lǐng)域?qū)ython開發(fā)者的需求都非常大。不過,專欄會盡量做到內(nèi)容與技術(shù)無關(guān)——注重概念,而非技術(shù)本身。
1.9初學(xué)者需要準(zhǔn)備的工具首先需要有一臺計算機(jī),以便跟著每個專欄內(nèi)容進(jìn)行示例練習(xí)。計算機(jī)有一個操作系統(tǒng)(operating system),即一個扮演人與計算機(jī)物理硬件之間的中間人的程序。可以在屏幕上看到的稱為圖形用戶界面(Graphical User Interface,GUI),它是操作系統(tǒng)的一部分。
臺式計算機(jī)和筆記本電腦目前有3種常用的操作系統(tǒng):Windows、UNIX和Linux。
Windows是微軟推出的操作系統(tǒng)。UNIX操作系統(tǒng)發(fā)明于20世紀(jì)70年代,目前最流行的UNIX操作系統(tǒng)是蘋果的OS X。Linux則是目前世界上大部分服務(wù)器(server)都在使用的一款開源操作系統(tǒng)。服務(wù)器指的是執(zhí)行托管網(wǎng)站等任務(wù)的計算機(jī)或計算機(jī)程序。開源(open-source)意味著軟件不歸某個公司或個人所有,而是由一群志愿者維護(hù)。Linux和UNIX都是類UNIX操作系統(tǒng),意味著二者之間非常相似。
如果你喜歡歡迎關(guān)注我的專欄《零基礎(chǔ)學(xué)Python3》,有問題歡迎給我留言,我會第一時間反饋給您。https://learning.snssdk.com/feoffline/toutiao_wallet_bundles/toutiao_learning_wap/online/article.html?item_id=6681141509619712520&app_name=news_article
Python,可以幫忙搶票,可以爬蟲東西,關(guān)于Python爬蟲怎么做?今天教大家一個案例,python爬蟲多線程實戰(zhàn):爬取美桌1080p壁紙圖片 | 技術(shù)
技術(shù)點分析
· 爬蟲requests
· 多線程threading
· 文件io讀寫操作
· xpath 提取ur
· 正則
實戰(zhàn)
· 分析url
搞清楚各個url 的關(guān)聯(lián)win4000.com/wallpaper_205_0_10_1.html
URL中與分類的關(guān)系:
wallpaper : 桌面壁紙
205 :壁紙分類對應(yīng)大陸明星
10 :圖片尺寸對應(yīng)1920*1080
分析到這一部,我們知道 ,如果要需要其他類型的壁紙,只需要更改網(wǎng)站分類代碼就可以了。
· 谷歌 charme ,通過右鍵檢查
chrame 瀏覽器右鍵提示。
按圖順序,依次找到對應(yīng)的html標(biāo)簽。
通過查看,我們發(fā)現(xiàn) 中間展示 的圖片是由一個ul 標(biāo)簽包裹的 多個Li
我們所要跳轉(zhuǎn)的鏈接 就在 Li 標(biāo)簽中, 這時就需要使用xpath進(jìn)行數(shù)據(jù)的提取。
到此,我們第一層url 的分析就完成了。可以寫出以下代碼段。
此時通過xpath 獲到當(dāng)前頁面中的 ul 中所有l(wèi)i 標(biāo)簽了。
那單個明星的跳轉(zhuǎn)鏈接只需要再次xpath 進(jìn)行提取就Ok了。
完成到這里你的代碼運(yùn)行結(jié)果應(yīng)該如下:是兩個列表list。
運(yùn)行結(jié)果
準(zhǔn)備下載圖片
到這,完成第一步,你已經(jīng)成功獲到 每個明星的跳轉(zhuǎn)鏈接 :
url: win4000.com/wallpaper_detail_153895.html
再次進(jìn)行url 的分析:
初步分析
通過上圖的分析,可以找到這張圖,是我們要 1080規(guī)格的。但很可惜,一共9張,現(xiàn)在只能找到一張圖片的url。
選其中兩張圖片地址對比:
pic1.win4000.com/wallpaper/2018-12-26/5c22eb195abe8.jpg
pic1.win4000.com/wallpaper/2018-12-26/5c22eb1c722dc.jpg
好像就是后面文件名不同。如果一張張取是不是很麻煩?
不信你自己去試一下。點再分析一下頁面,有個 【查看原圖】 選項,點一下試試呢?
點擊上圖出,點完發(fā)現(xiàn)了url的變化。
再看看有沒有驚喜的地方 :
上圖為url分析。
通過上圖的分析 ,我們發(fā)現(xiàn)原來這個big頁面有我們想要的所有 1080P的圖片,而且,全是用ul 包裹,放到單個Li 標(biāo)簽中 。那簡單了,用之前的辦法 再提取一次,就出來了。代碼如下:
到這里,我們第一步就完成了一頁24個明星圖片的地址url的爬取。第二步,完成了單個明星的1080圖片地址url的爬取。下一步,我們把圖片保存到本地就順利結(jié)束。
圖片保存
按需求,要單獨到一個文件夾內(nèi)。那我們就需要在本地路徑內(nèi) 創(chuàng)建對應(yīng)的文件夾。此處使用 star_img_name 列表中的值。需要使用到i/o讀寫操作。
順利完成 這個需求:
源碼展示
代碼運(yùn)行結(jié)果若不同,可看一眼源碼:
運(yùn)行起來是不是很慢(完善版使用多線程),而且這樣看代碼,是不是有種:干干巴巴的,麻麻咧咧的,一點都不圓潤,盤他!!
完善版是可以完成可選分類,可選規(guī)格 ,多線程版。希望這個小實戰(zhàn)案例可以幫到大家。
有關(guān)于Python爬蟲的課程:
Python爬蟲數(shù)據(jù)挖掘基礎(chǔ)教程
python網(wǎng)絡(luò)爬蟲第一天
python網(wǎng)絡(luò)爬蟲第二天
有想學(xué)習(xí)的小伙伴,可以關(guān)注黑馬程序員,后臺回復(fù)“Python爬蟲”哦!
Python在線視頻教程很多,每個平臺視頻內(nèi)容都差不多,大部分都是免費(fèi)視頻。
中國大學(xué)mooc是各大高校的開放課程,因為現(xiàn)在高校開始開設(shè)Python課程,所以像清華大學(xué)免費(fèi)Python課程都可以在中國大學(xué)mooc查找到免費(fèi)學(xué)習(xí)。
PHP中文網(wǎng),很多人以為是一個pHP教程的網(wǎng)站,其實php中文網(wǎng)有很多編程語言,比如c語言,Java等常用編程,當(dāng)然也包括Python視頻教程,我想重點說下所有教程視頻都是免費(fèi)的。
各大視頻平臺,比如愛奇藝,騰訊課程視頻,百度視頻等,這些平臺可以搜索到免費(fèi)的個人發(fā)布視頻。
最后推薦b站,很多說編程技術(shù)都是b站學(xué)到的,而且不用看廣告喔。西瓜視頻也是有很多視頻,你可以直接搜索一下,都會找到免費(fèi)的Python教程視頻。
以上是個人觀點,希望能幫助到你!