Python是一門面向?qū)ο蟮木幊陶Z言,編譯速度超快,從誕生到現(xiàn)在已經(jīng)25個年頭了倦畅。它具有豐富和強(qiáng)大的庫,常被稱為“膠水語言”绣的,能夠把用其他語言編寫的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起叠赐。其特點在于靈活運用,因為其擁有大量第三方庫屡江,所以開發(fā)人員不必重復(fù)造輪子芭概,就像搭積木一樣,只要擅于利用這些庫就可以完成絕大部分工作惩嘉。
如果你想選擇一種語言來入門編程罢洲,那么Python絕對是首選!其非常接近自然語言,精簡了很多不必要的分號和括號惹苗,非常容易閱讀理解殿较。編程簡單直接,更適合初學(xué)編程者桩蓉,讓其專注于編程邏輯淋纲,而不是困惑于晦澀的語法細(xì)節(jié)上,比起JAVA院究、C#和C/C++這些編程語言相對容易很多洽瞬。
因此,即使是非計算機(jī)專業(yè)或者沒有基礎(chǔ)的小白业汰,也能分分鐘入門伙窃。Python的設(shè)計哲學(xué)是“優(yōu)雅”、“明確”样漆、“簡單”为障,也因此決定了它是最文藝的編程語言。所以放祟,也極力推薦妹子來學(xué)Python鳍怨。語法清楚,干凈舞竿,易讀、易維護(hù)窿冯,代碼量少骗奖,簡短可讀性強(qiáng),團(tuán)隊協(xié)作開發(fā)時讀別人的代碼速度會非承汛快执桌,更高效。通俗來說:“寫起來快芜赌、看起來明白仰挣!”
Realpython.com上面的一篇文章于是把Python可以做的事情以及不適合做的事情進(jìn)行了總結(jié)。
更棒的是缠沈,里面還列舉了如何做這些事情的教程和項目案例膘壶,是非常適合上手的資源匯總。
你做到了:你已經(jīng)完成了一門課程洲愤,或者終于看完了一本教你用Python學(xué)習(xí)編程基礎(chǔ)的書颓芭。你已經(jīng)掌握了列表、字典柬赐、類亡问,也許甚至還有面向?qū)ο蟮母拍睢?/p>
那么……接下來呢?
Python是一門非常全面的編程語言肛宋,在各個不同領(lǐng)域都有著繁多的應(yīng)用州藕。如果你已經(jīng)掌握了Python的基礎(chǔ)并且恨不得馬上用這門語言做點東西束世,那現(xiàn)在就是找出下一步應(yīng)該做什么的時候了。
在本文中床玻,我們提供了若干不同的項目毁涉、資源以及教程,你可以利用這些來開始做東西笨枯。
別人用Python做了什么
你可能會在想薪丁,在現(xiàn)實世界里別人都用Python開發(fā)了什么東西呢。那么首先我們先迅速看一下其中一些大的技術(shù)公司是怎么使用這門語言的馅精。
Google這家公司從一開始就使用Python了严嗜,而且在這家技術(shù)巨頭的主要服務(wù)器端語言陣營中贏得了一席之地。Python的仁慈的獨裁者Guido van Rossum甚至還在那里待過幾年洲敢,負(fù)責(zé)監(jiān)管這門語言的開發(fā)工作漫玄。
Instagram喜歡Python是因為它的簡潔。這項服務(wù)以運行著“全世界最大的Django web框架部署”著稱压彭。而Django完全是用Python寫出來的睦优。
Spotify將這么語言用到數(shù)據(jù)分析和后端服務(wù)上。據(jù)他們的團(tuán)隊說壮不,Python的易用讓他們擁有了一條超快的開發(fā)渠道汗盘。Spotify要進(jìn)行海量分析來給用戶提供推薦,所以他們需要一個簡單又好用的東西询一。Python正好是救兵隐孽!
你還可以看看這篇文章去了解其他公司都用Python干什么。如果你已經(jīng)被說服的話健蕊,我們就開始吧菱阵!
你可以用Python做什么
從web開發(fā)到數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)等等缩功,Python在現(xiàn)實世界中的應(yīng)用是無限的晴及。以下一些項目將會輔助你最終將你的Python技能用到正道上。
#1:將乏味的事情自動化
這是一本“針對全新初學(xué)者實用編程”的資源嫡锌。就像標(biāo)題所述虑稼,這本書教你如何將乏味的任務(wù)自動化,比如更新電子表格或者重命名計算機(jī)的文件势木。這是想要掌握Python基礎(chǔ)的任何人的完美起點动雹。
你將有機(jī)會聯(lián)系自己到目前為止學(xué)到過的東西,去創(chuàng)建字典跟压、抓取web胰蝠,折騰文件,并且創(chuàng)建對象和類。你在這本書遇到的上手應(yīng)用會為你聽過現(xiàn)實世界中的結(jié)果茸塞,你可以馬上就看到躲庄。
這一資源有不同的格式,可保證最好的學(xué)習(xí)體驗钾虐。你可以到Amazon上面去買實體書或者免費在網(wǎng)上閱讀噪窘。
#2:隨時跟蹤比特幣價格
這段時間似乎人人都在講比特幣。自從2017年12月價格達(dá)到將近20000美元的高點后效扫,加密數(shù)字貨幣已經(jīng)進(jìn)入到數(shù)百萬人的腦海里倔监。它的價格在不斷波動,但是很多人都認(rèn)為這是一筆值得的投資菌仁。
如果你正在尋求靠這波虛擬淘金熱賺上一筆浩习,想知道什么時候該出手,那就得隨時了解比特幣的價格济丘。這門教程可以教你如何利用Python技能開發(fā)出一項比特幣價格通知服務(wù)谱秽。
這一項目的基礎(chǔ)是IFTTT小程序的創(chuàng)建。你講學(xué)會如何利用請求庫來發(fā)送HTTP請求以及如何利用webhook將你的app與外部服務(wù)連接摹迷。
這是對加密數(shù)字貨幣感興趣的Python初學(xué)者完美的初始項目疟赊。你用這一教程開發(fā)的這項服務(wù)可以延伸到其他的貨幣,所以別擔(dān)心峡碉,以太坊也能用上近哟。
#3:創(chuàng)建一個計算器
這個簡單的項目是進(jìn)入GUI編程的一個可靠的辦法。開發(fā)后端服務(wù)是部署的重要部分之一鲫寄,但是可能也需要考慮前端的事情吉执。創(chuàng)建用戶可輕松與之交互的應(yīng)用就顯得無比重要。
如果你對UX和UI感興趣塔拳,那就看看這門教程鼠证。從中你會接觸tkinter 模塊峡竣,這是標(biāo)準(zhǔn)的圖形化用戶界面軟件包靠抑,通常是跟Python捆綁在一起的。
tkinter 模塊是對Tcl/Tk進(jìn)行封裝的wrapper适掰,是Tcl腳本語言與Tk GUI框架擴(kuò)展的結(jié)合颂碧。如果你已經(jīng)安裝了Python,那你就應(yīng)該已經(jīng)有tkinter框架可用了类浪。一個簡單的調(diào)用即可喚出:
frim tkinter import
一旦你完成了這一步設(shè)置载城,就可以用Python繼續(xù)開發(fā)你的第一個GUI計算器了。
練習(xí)運用tkinter模塊费就,看著你的愿景慢慢在屏幕上實現(xiàn)诉瓦。然后,一旦你練過手了,就可以拓展學(xué)習(xí)Python其他的GUI工具包了睬澡。更多信息可以看看Python GUI編程的官方文檔固额。
#4:挖掘Twitter數(shù)據(jù)
感謝互聯(lián)網(wǎng)以及逐步壯大的物聯(lián)網(wǎng),我們現(xiàn)在能訪問的數(shù)據(jù)量之大甚至在10年前都是無法想象的煞聪。分析是任何跟數(shù)據(jù)打交道的領(lǐng)域的很大一部分斗躏。大家都在討論什么?我們從他們的行為中能看到什么模式昔脯?
Twitter是獲得其中一些問題答案的好地方啄糙。如果你對數(shù)據(jù)分析感興趣,則Twitter數(shù)據(jù)挖掘項目就是利用你的Python技能回答有關(guān)周圍世界的問題的好辦法云稚。
我們的Twitter情緒分析教程將用一個docker環(huán)境教你如何挖掘Twitter數(shù)據(jù)并且分析用戶情緒隧饼。你將學(xué)會如何用Twitter注冊一個應(yīng)用,只有這樣你才能訪問他們的streaming API碱鳞。
你會看到如何利用Tweepy來過濾想要抓取的推特桑李,用TextBlob來計算哪些推特的情緒,用Elasticsearch來分析他們的內(nèi)容窿给,以及用Kibana來對結(jié)果進(jìn)行可視化贵白。當(dāng)你完成這門教程后,你應(yīng)該就可以深入學(xué)習(xí)其他利用Python來進(jìn)行文字處理和語音識別的項目了崩泡。
#5:用Flask建立一個微博客
似乎現(xiàn)在人人都有一個博客禁荒,但是給自己在網(wǎng)上設(shè)立一個中心樞紐不算什么糟糕想法。隨著Twitter和Instagram的出現(xiàn)角撞,微博客尤其流行起來呛伴。在Miguel Grinberg搞的這個項目里,你會學(xué)習(xí)到如何搭建自己的微博客谒所。
這門教程叫做“Flask Mega指南”热康,內(nèi)容可以說不負(fù)其名。整篇教程分為23章劣领,學(xué)習(xí)完之后你可以對Flask微型web框架擁有深刻了解姐军。到項目最后,你應(yīng)該就能得到一個功能完整的web應(yīng)用了尖淘。
你不需要了解有關(guān)Flask的一切就可以開始奕锌,所以對于那些恨不得馬上動手嘗試web開發(fā)的人來說這是非常好的。
這個教程最近還更新了村生,把有助于你成為更好的web開發(fā)者的內(nèi)容也納入進(jìn)來了惊暴。你可以在網(wǎng)上免費閱讀,或者到Amazon去買一本紙質(zhì)版趁桃,或者在他的在線課程中讓作者手把手教你辽话。一旦你做完項目肄鸽,你就可以繼續(xù)學(xué)Django,甚至開始創(chuàng)建更大規(guī)模的web應(yīng)用了油啤。
#6:建立一個區(qū)塊鏈
盡管區(qū)塊鏈起初開發(fā)出來是作為金融技術(shù)使用的贴捡,但現(xiàn)在卻蔓延到了其他的各個行業(yè)。區(qū)塊鏈幾乎可以用到任何交易上面:從房地產(chǎn)到病歷轉(zhuǎn)移等等村砂。
如果自己做一個的話牛就會對它的機(jī)制有更好的了解烂斋。Hackernoon的教程將輔助你從零開始實現(xiàn)一個區(qū)塊鏈。到項目最后础废,你會對這一交易技術(shù)的機(jī)制擁有深入的了解汛骂。
做區(qū)塊鏈需要跟HTTP和request庫打交道。一旦你安裝了Flaskweb框架评腺,你就可以通過互聯(lián)網(wǎng)用HTTP請求跟你的區(qū)塊鏈進(jìn)行通信了帘瞭。
記住,區(qū)塊鏈不僅僅適用于加密狂熱者蒿讥。一旦你自己開發(fā)了一個區(qū)塊鏈之后蝶念,可以看看能不能找到有創(chuàng)意的手段在你感興趣的領(lǐng)域?qū)崿F(xiàn)這門技術(shù)。
#7:Twitter Feed控制
對開發(fā)web應(yīng)用感興趣但是對開始一個大型項目沒有信心芋绸?別擔(dān)心——我們有東西給你媒殉。跟著我們一起學(xué)習(xí)如何在幾個小時內(nèi)創(chuàng)建一個簡單的web app。
Bob Belderbos分享了自己是如何實現(xiàn)第40屆PyBites Code Challenge 的摔敛,在這項編程挑戰(zhàn)中廷蓉,參與者需要創(chuàng)建一個web應(yīng)用來更好地在Twitter上控制每日Python提示的新聞流。你可以通讀他的實現(xiàn)以及代碼了解究竟马昙。
這次你用的不是Flask桃犬,而是微型web框架Bottle。Bottle以迅速部署應(yīng)用的低依賴度解決方案著稱行楞。既然它是輕量且易用的攒暇,所以你很快就能搭建好你的應(yīng)用。
你還會用Tweepy模塊加載Twitter API的數(shù)據(jù)子房。你會將數(shù)據(jù)保存到 SQLAlchemy 數(shù)據(jù)庫里面形用,所以你還會練習(xí)到SQL查詢的編寫。Fork這個代碼庫就可以開始了池颈!
#8:玩PyGames
這個是給喜歡樂子的人準(zhǔn)備的尾序!Python可用于對各種電玩游戲钓丰、冒險游戲以及益智游戲進(jìn)行編碼躯砰,你可以在數(shù)天之內(nèi)完成部署。經(jīng)典的游戲包括猜單詞携丁、一字棋琢歇、乒乓球等等兰怠,這些都可以用你剛學(xué)會的編程技能去做。
Pygame庫使得自己開發(fā)游戲變得更加容易李茫。它包含了開發(fā)游戲所需的幾乎一切揭保。
Pygame既是免費的也是開源的。里面包含有計算機(jī)圖形庫和聲音庫魄宏,你可以利用這些可以來給你的應(yīng)用增加互動功能秸侣。
你可以用這個庫來開發(fā)很多的游戲。不管你選擇要做哪一個宠互,請隨意把你的東西Pygame社區(qū)味榛!
#9:選擇你的冒險之旅
如果你更喜歡講故事,用Python仍然可以開發(fā)出很酷的東西來予跌。
這門語言極其容易編寫搏色,是創(chuàng)作交互式小說的完美環(huán)境。這個免費資源會指導(dǎo)你如何用Python編寫一個文本型的冒險游戲的過程券册。
教程需要掌握一些Python編程的基本知識频轿,但是它能夠幫助你彌補(bǔ)自己所了解的知識與如何運用這一知識到應(yīng)用開發(fā)上之間的鴻溝。
如果你希望將你的故事提升到新的水平烁焙,可以用類似Ren’Py這樣的軟件引擎添加聲音和圖像到你的游戲里面航邢,創(chuàng)作出成熟的可視化小說。(然后你可以把它放到Steam上看看大家的反應(yīng)骄蝇!獲得對自己作品反饋的最好方式是把它發(fā)布到世界上)
#10:對機(jī)器學(xué)習(xí)說“Hell World翠忠!”
對于對人工智能感興趣的任何人來說,機(jī)器學(xué)習(xí)是理解的關(guān)鍵領(lǐng)域乞榨。然而秽之,想要開始學(xué)習(xí)機(jī)器是很嚇人的,而且這個領(lǐng)域發(fā)展很快吃既,總是在變考榨。
幸運的時候,網(wǎng)上有很多資源可以幫助你試水一下再投入到數(shù)據(jù)科學(xué)的海洋之中鹦倚。Jason Brownlee的這門教程是關(guān)于用Python處理機(jī)器學(xué)習(xí)非常精彩的介紹河质。
從中你將了解到其中一些最常見的機(jī)器學(xué)習(xí)算法,以及可以輔助你做出預(yù)測的Python庫震叙。
這門教程極其簡單而且非常容易學(xué)掀鹅。你可以在幾個小時之內(nèi)完成學(xué)習(xí)。等你學(xué)完之后媒楼,就會對如何利用Python進(jìn)行數(shù)據(jù)科學(xué)工作有了迅速的了解乐尊。
如果你確認(rèn)自己已經(jīng)準(zhǔn)備好進(jìn)一步深入學(xué)習(xí)了,可以看看我們的海量數(shù)據(jù)科學(xué)教程划址,在這里你可以學(xué)習(xí)如何分析指紋扔嵌、如何建立可視化限府,以及如何識別語音和面部,這一切都是用Python來做的痢缎。
#11:接受挑戰(zhàn)
如果你不確定要冒險嘗試上述的一些較大型的項目胁勺,而小一點的你又不感興趣的話,那你可能就會想還有其他可以練手的嗎独旷?怎么才能找到令你興奮的東西呢署穗?
編碼挑戰(zhàn)可以幫助你聯(lián)系你的Python技能并且對你可以用Python做到的所有不同事情有初步了解。
簡而言之:給你一個問題嵌洼,你必須用Python找到一個解決方案蛇捌。
你有機(jī)會開發(fā)對你有意義的問題的實現(xiàn),但你也有機(jī)會通過提示來深入探究Python語言咱台。這些會告訴你應(yīng)該導(dǎo)入哪些模塊來幫助你解決挑戰(zhàn)络拌。
編碼挑戰(zhàn)是以廣度優(yōu)先的方式盡可能多地學(xué)習(xí)庫、方法回溺、以及框架的好辦法春贸。在這里保證你可以找到想要進(jìn)一步探索的東西。你可能甚至還會回到這份清單里面遗遵,并且發(fā)現(xiàn)你用來解決其中一個挑戰(zhàn)的東西已經(jīng)激起了你新的興趣萍恕!
以下的挑戰(zhàn)你可以試試:
The Python Challenge有20個多個關(guān)卡可供挑戰(zhàn)。創(chuàng)建小規(guī)模的Python腳本來找到相應(yīng)關(guān)卡的解決方案车要≡试粒互聯(lián)網(wǎng)上到處都有相關(guān)解決方案的提示,不過最好還是自己找到解決辦法翼岁!
PyBites Code Challenges的挑戰(zhàn)也有50多個类垫!這些挑戰(zhàn)鼓勵你通過開發(fā)應(yīng)用完成任務(wù)來掌握Python。
如果你打算自己搞定這些挑戰(zhàn)而不是按照教程步驟去編碼的話琅坡,那么找一份可以隨時求助的資源總是好的悉患。當(dāng)你在解決這些挑戰(zhàn)時,Python Tricks這本書是非常出色的案頭信息源榆俺。它會帶領(lǐng)你探索Python不那么知名的地方售躁,而那些地方正是你解決問題所需要的。
接下來呢茴晋?
好了陪捷,這就是你從Python初學(xué)者發(fā)展成嫻熟的Pythonista的11條道路。
不管你選擇從何開始诺擅,必定會找到無數(shù)發(fā)展編程技能的光明大道市袖。隨便選一個然后開始就是了!
????R?Q