大家都在學(xué)的編程語言Python,可以用來干什么?
當(dāng)前位置:點(diǎn)晴教程→閑情逸致
→『 微信好文 』
編者按:Python因?yàn)楹?jiǎn)單全面易用而成為近年來大熱的編程語言。但是很多人學(xué)習(xí)了這門余元的語法和基本功能之后卻不知道Python能干什么以及怎么做。Realpython.com上面的一篇文章于是把Python可以做的事情以及不適合做的事情進(jìn)行了總結(jié)。更棒的是,里面還列舉了如何做這些事情的教程和項(xiàng)目案例,是非常適合上手的資源匯總。
你做到了:你已經(jīng)完成了一門課程,或者終于看完了一本教你用Python學(xué)習(xí)編程基礎(chǔ)的書。你已經(jīng)掌握了列表、字典、類,也許甚至還有面向?qū)ο蟮母拍睢?/span> 那么……接下來呢? Python是一門非常全面的編程語言,在各個(gè)不同領(lǐng)域都有著繁多的應(yīng)用。如果你已經(jīng)掌握了Python的基礎(chǔ)并且恨不得馬上用這門語言做點(diǎn)東西,那現(xiàn)在就是找出下一步應(yīng)該做什么的時(shí)候了。 在本文中,我們提供了若干不同的項(xiàng)目、資源以及教程,你可以利用這些來開始做東西。 別人用Python做了什么 你可能會(huì)在想,在現(xiàn)實(shí)世界里別人都用Python開發(fā)了什么東西呢。那么首先我們先迅速看一下其中一些大的技術(shù)公司是怎么使用這門語言的。 Google這家公司從一開始就使用Python了,而且在這家技術(shù)巨頭的主要服務(wù)器端語言陣營中贏得了一席之地。Python的仁慈的獨(dú)裁者Guido van Rossum甚至還在那里待過幾年,負(fù)責(zé)監(jiān)管這門語言的開發(fā)工作。 Instagram喜歡Python是因?yàn)樗暮?jiǎn)潔。這項(xiàng)服務(wù)以運(yùn)行著“全世界最大的Django web框架部署”著稱。而Django完全是用Python寫出來的。 Spotify將這么語言用到數(shù)據(jù)分析和后端服務(wù)上。據(jù)他們的團(tuán)隊(duì)說,Python的易用讓他們擁有了一條超快的開發(fā)渠道。Spotify要進(jìn)行海量分析來給用戶提供推薦,所以他們需要一個(gè)簡(jiǎn)單又好用的東西。Python正好是救兵! 你還可以看看這篇文章去了解其他公司都用Python干什么。如果你已經(jīng)被說服的話,我們就開始吧! 你可以用Python做什么 從web開發(fā)到數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)等等,Python在現(xiàn)實(shí)世界中的應(yīng)用是無限的。以下一些項(xiàng)目將會(huì)輔助你最終將你的Python技能用到正道上。 #1:將乏味的事情自動(dòng)化 這是一本“針對(duì)全新初學(xué)者實(shí)用編程”的資源。就像標(biāo)題所述,這本書教你如何將乏味的任務(wù)自動(dòng)化,比如更新電子表格或者重命名計(jì)算機(jī)的文件。這是想要掌握Python基礎(chǔ)的任何人的完美起點(diǎn)。 你將有機(jī)會(huì)聯(lián)系自己到目前為止學(xué)到過的東西,去創(chuàng)建字典、抓取web,折騰文件,并且創(chuàng)建對(duì)象和類。你在這本書遇到的上手應(yīng)用會(huì)為你聽過現(xiàn)實(shí)世界中的結(jié)果,你可以馬上就看到。 這一資源有不同的格式,可保證最好的學(xué)習(xí)體驗(yàn)。你可以到Amazon上面去買實(shí)體書或者免費(fèi)在網(wǎng)上閱讀。 #2:隨時(shí)跟蹤比特幣價(jià)格 這段時(shí)間似乎人人都在講比特幣。自從2017年12月價(jià)格達(dá)到將近20000美元的高點(diǎn)后,加密數(shù)字貨幣已經(jīng)進(jìn)入到數(shù)百萬人的腦海里。它的價(jià)格在不斷波動(dòng),但是很多人都認(rèn)為這是一筆值得的投資。 如果你正在尋求靠這波虛擬淘金熱賺上一筆,想知道什么時(shí)候該出手,那就得隨時(shí)了解比特幣的價(jià)格。這門教程可以教你如何利用Python技能開發(fā)出一項(xiàng)比特幣價(jià)格通知服務(wù)。 這一項(xiàng)目的基礎(chǔ)是IFTTT小程序的創(chuàng)建。你講學(xué)會(huì)如何利用請(qǐng)求庫來發(fā)送HTTP請(qǐng)求以及如何利用webhook將你的app與外部服務(wù)連接。 這是對(duì)加密數(shù)字貨幣感興趣的Python初學(xué)者完美的初始項(xiàng)目。你用這一教程開發(fā)的這項(xiàng)服務(wù)可以延伸到其他的貨幣,所以別擔(dān)心,以太坊也能用上。 #3:創(chuàng)建一個(gè)計(jì)算器 這個(gè)簡(jiǎn)單的項(xiàng)目是進(jìn)入GUI編程的一個(gè)可靠的辦法。開發(fā)后端服務(wù)是部署的重要部分之一,但是可能也需要考慮前端的事情。創(chuàng)建用戶可輕松與之交互的應(yīng)用就顯得無比重要。 如果你對(duì)UX和UI感興趣,那就看看這門教程。從中你會(huì)接觸tkinter 模塊,這是標(biāo)準(zhǔn)的圖形化用戶界面軟件包,通常是跟Python捆綁在一起的。 tkinter 模塊是對(duì)Tcl/Tk進(jìn)行封裝的wrapper,是Tcl腳本語言與Tk GUI框架擴(kuò)展的結(jié)合。如果你已經(jīng)安裝了Python,那你就應(yīng)該已經(jīng)有tkinter框架可用了。一個(gè)簡(jiǎn)單的調(diào)用即可喚出:
一旦你完成了這一步設(shè)置,就可以用Python繼續(xù)開發(fā)你的第一個(gè)GUI計(jì)算器了。 練習(xí)運(yùn)用tkinter模塊,看著你的愿景慢慢在屏幕上實(shí)現(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是獲得其中一些問題答案的好地方。如果你對(duì)數(shù)據(jù)分析感興趣,則Twitter數(shù)據(jù)挖掘項(xiàng)目就是利用你的Python技能回答有關(guān)周圍世界的問題的好辦法。 我們的Twitter情緒分析教程將用一個(gè)docker環(huán)境教你如何挖掘Twitter數(shù)據(jù)并且分析用戶情緒。你將學(xué)會(huì)如何用Twitter注冊(cè)一個(gè)應(yīng)用,只有這樣你才能訪問他們的streaming API。 你會(huì)看到如何利用Tweepy來過濾想要抓取的推特,用TextBlob來計(jì)算哪些推特的情緒,用Elasticsearch來分析他們的內(nèi)容,以及用Kibana來對(duì)結(jié)果進(jìn)行可視化。當(dāng)你完成這門教程后,你應(yīng)該就可以深入學(xué)習(xí)其他利用Python來進(jìn)行文字處理和語音識(shí)別的項(xiàng)目了。 #5:用Flask建立一個(gè)微博客 似乎現(xiàn)在人人都有一個(gè)博客,但是給自己在網(wǎng)上設(shè)立一個(gè)中心樞紐不算什么糟糕想法。隨著Twitter和Instagram的出現(xiàn),微博客尤其流行起來。在Miguel Grinberg搞的這個(gè)項(xiàng)目里,你會(huì)學(xué)習(xí)到如何搭建自己的微博客。 這門教程叫做“Flask Mega指南”,內(nèi)容可以說不負(fù)其名。整篇教程分為23章,學(xué)習(xí)完之后你可以對(duì)Flask微型web框架擁有深刻了解。到項(xiàng)目最后,你應(yīng)該就能得到一個(gè)功能完整的web應(yīng)用了。 你不需要了解有關(guān)Flask的一切就可以開始,所以對(duì)于那些恨不得馬上動(dòng)手嘗試web開發(fā)的人來說這是非常好的。 這個(gè)教程最近還更新了,把有助于你成為更好的web開發(fā)者的內(nèi)容也納入進(jìn)來了。你可以在網(wǎng)上免費(fèi)閱讀,或者到Amazon去買一本紙質(zhì)版,或者在他的在線課程中讓作者手把手教你。一旦你做完項(xiàng)目,你就可以繼續(xù)學(xué)Django,甚至開始創(chuàng)建更大規(guī)模的web應(yīng)用了。 #6:建立一個(gè)區(qū)塊鏈 盡管區(qū)塊鏈起初開發(fā)出來是作為金融技術(shù)使用的,但現(xiàn)在卻蔓延到了其他的各個(gè)行業(yè)。區(qū)塊鏈幾乎可以用到任何交易上面:從房地產(chǎn)到病歷轉(zhuǎn)移等等。 如果自己做一個(gè)的話牛就會(huì)對(duì)它的機(jī)制有更好的了解。Hackernoon的教程將輔助你從零開始實(shí)現(xiàn)一個(gè)區(qū)塊鏈。到項(xiàng)目最后,你會(huì)對(duì)這一交易技術(shù)的機(jī)制擁有深入的了解。 做區(qū)塊鏈需要跟HTTP和request庫打交道。一旦你安裝了Flask web框架,你就可以通過互聯(lián)網(wǎng)用HTTP請(qǐng)求跟你的區(qū)塊鏈進(jìn)行通信了。 記住,區(qū)塊鏈不僅僅適用于加密狂熱者。一旦你自己開發(fā)了一個(gè)區(qū)塊鏈之后,可以看看能不能找到有創(chuàng)意的手段在你感興趣的領(lǐng)域?qū)崿F(xiàn)這門技術(shù)。 #7:Twitter Feed控制 對(duì)開發(fā)web應(yīng)用感興趣但是對(duì)開始一個(gè)大型項(xiàng)目沒有信心?別擔(dān)心——我們有東西給你。跟著我們一起學(xué)習(xí)如何在幾個(gè)小時(shí)內(nèi)創(chuàng)建一個(gè)簡(jiǎn)單的web app。 Bob Belderbos分享了自己是如何實(shí)現(xiàn)第40屆PyBites Code Challenge 的,在這項(xiàng)編程挑戰(zhàn)中,參與者需要?jiǎng)?chuàng)建一個(gè)web應(yīng)用來更好地在Twitter上控制每日Python提示的新聞流。你可以通讀他的實(shí)現(xiàn)以及代碼了解究竟。 這次你用的不是Flask,而是微型web框架Bottle。Bottle以迅速部署應(yīng)用的低依賴度解決方案著稱。既然它是輕量且易用的,所以你很快就能搭建好你的應(yīng)用。 你還會(huì)用Tweepy模塊加載Twitter API的數(shù)據(jù)。你會(huì)將數(shù)據(jù)保存到 SQLAlchemy 數(shù)據(jù)庫里面,所以你還會(huì)練習(xí)到SQL查詢的編寫。Fork這個(gè)代碼庫就可以開始了! #8:玩PyGames 這個(gè)是給喜歡樂子的人準(zhǔn)備的!Python可用于對(duì)各種電玩游戲、冒險(xiǎn)游戲以及益智游戲進(jìn)行編碼,你可以在數(shù)天之內(nèi)完成部署。經(jīng)典的游戲包括猜單詞、一字棋、乒乓球等等,這些都可以用你剛學(xué)會(huì)的編程技能去做。 Pygame庫使得自己開發(fā)游戲變得更加容易。它包含了開發(fā)游戲所需的幾乎一切。 Pygame既是免費(fèi)的也是開源的。里面包含有計(jì)算機(jī)圖形庫和聲音庫,你可以利用這些可以來給你的應(yīng)用增加互動(dòng)功能。 你可以用這個(gè)庫來開發(fā)很多的游戲。不管你選擇要做哪一個(gè),請(qǐng)隨意把你的東西分享到Pygame社區(qū)! #9:選擇你的冒險(xiǎn)之旅 如果你更喜歡講故事,用Python仍然可以開發(fā)出很酷的東西來。 這門語言極其容易編寫,是創(chuàng)作交互式小說的完美環(huán)境。這個(gè)免費(fèi)資源會(huì)指導(dǎo)你如何用Python編寫一個(gè)文本型的冒險(xiǎn)游戲的過程。 教程需要掌握一些Python編程的基本知識(shí),但是它能夠幫助你彌補(bǔ)自己所了解的知識(shí)與如何運(yùn)用這一知識(shí)到應(yīng)用開發(fā)上之間的鴻溝。 如果你希望將你的故事提升到新的水平,可以用類似Ren’Py這樣的軟件引擎添加聲音和圖像到你的游戲里面,創(chuàng)作出成熟的可視化小說。(然后你可以把它放到Steam上看看大家的反應(yīng)!獲得對(duì)自己作品反饋的最好方式是把它發(fā)布到世界上) #10:對(duì)機(jī)器學(xué)習(xí)說“Hell World!” 對(duì)于對(duì)人工智能感興趣的任何人來說,機(jī)器學(xué)習(xí)是理解的關(guān)鍵領(lǐng)域。然而,想要開始學(xué)習(xí)機(jī)器是很嚇人的,而且這個(gè)領(lǐng)域發(fā)展很快,總是在變。 幸運(yùn)的時(shí)候,網(wǎng)上有很多資源可以幫助你試水一下再投入到數(shù)據(jù)科學(xué)的海洋之中。Jason Brownlee的這門教程是關(guān)于用Python處理機(jī)器學(xué)習(xí)非常精彩的介紹。 從中你將了解到其中一些最常見的機(jī)器學(xué)習(xí)算法,以及可以輔助你做出預(yù)測(cè)的Python庫。 這門教程極其簡(jiǎn)單而且非常容易學(xué)。你可以在幾個(gè)小時(shí)之內(nèi)完成學(xué)習(xí)。等你學(xué)完之后,就會(huì)對(duì)如何利用Python進(jìn)行數(shù)據(jù)科學(xué)工作有了迅速的了解。 如果你確認(rèn)自己已經(jīng)準(zhǔn)備好進(jìn)一步深入學(xué)習(xí)了,可以看看我們的海量數(shù)據(jù)科學(xué)教程,在這里你可以學(xué)習(xí)如何分析指紋、如何建立可視化,以及如何識(shí)別語音和面部,這一切都是用Python來做的。 #11:接受挑戰(zhàn) 如果你不確定要冒險(xiǎn)嘗試上述的一些較大型的項(xiàng)目,而小一點(diǎn)的你又不感興趣的話,那你可能就會(huì)想還有其他可以練手的嗎?怎么才能找到令你興奮的東西呢? 編碼挑戰(zhàn)可以幫助你聯(lián)系你的Python技能并且對(duì)你可以用Python做到的所有不同事情有初步了解。 簡(jiǎn)而言之:給你一個(gè)問題,你必須用Python找到一個(gè)解決方案。 你有機(jī)會(huì)開發(fā)對(duì)你有意義的問題的實(shí)現(xiàn),但你也有機(jī)會(huì)通過提示來深入探究Python語言。這些會(huì)告訴你應(yīng)該導(dǎo)入哪些模塊來幫助你解決挑戰(zhàn)。 編碼挑戰(zhàn)是以廣度優(yōu)先的方式盡可能多地學(xué)習(xí)庫、方法、以及框架的好辦法。在這里保證你可以找到想要進(jìn)一步探索的東西。你可能甚至還會(huì)回到這份清單里面,并且發(fā)現(xiàn)你用來解決其中一個(gè)挑戰(zhàn)的東西已經(jīng)激起了你新的興趣! 以下的挑戰(zhàn)你可以試試:
如果你打算自己搞定這些挑戰(zhàn)而不是按照教程步驟去編碼的話,那么找一份可以隨時(shí)求助的資源總是好的。當(dāng)你在解決這些挑戰(zhàn)時(shí),Python Tricks這本書是非常出色的案頭信息源。它會(huì)帶領(lǐng)你探索Python不那么知名的地方,而那些地方正是你解決問題所需要的。 Python可能不應(yīng)該干的事情 顯然Python是非常全能的語言,你可以用它來做很多事情。但你沒法用它來做完所有事情。實(shí)際上,有些東西Python就不是很擅長。 作為一門解釋性語言,Python跟設(shè)備驅(qū)動(dòng)程序這樣的底層設(shè)備打交道會(huì)比較麻煩。比方說,如果你只想用Python來寫一個(gè)操作系統(tǒng)的話會(huì)遇到問題。底層應(yīng)用最好還是堅(jiān)持用C或者C++來寫。 然而,甚至這一斷言恐怕也持續(xù)不了多久。作為對(duì)Python靈活性的證明,有人正在致力于擴(kuò)展Python在底層交互中的可用性的項(xiàng)目。MicroPython只是其中之一,其目標(biāo)就是為Python提供底層能力。 如果我想做的東西沒有出現(xiàn)在這份清單里面怎么辦? 沒關(guān)系!這份東西也不是面面俱到的——用Python你可以開發(fā)無數(shù)我們沒有覆蓋到的工具和應(yīng)用。不要把你自己局限在這份清單里面。這只是一份資源,讓你有個(gè)地方可以開始。 這個(gè)視頻可以告訴你Python還適合哪些其他項(xiàng)目。你還可以看看這篇博客文章,了解去哪里尋找更多的Python項(xiàng)目靈感。 最后,該你來做一下調(diào)查找到能調(diào)動(dòng)自己興趣的項(xiàng)目了。如果你不確定從何開始,那就關(guān)注我們的Twitter賬號(hào)吧。我們會(huì)定期分享來自讀者社區(qū)的很酷很有趣的項(xiàng)目。你可能會(huì)從中找到自己迫不及待想要做出貢獻(xiàn)的一個(gè)。 接下來呢? 好了,這就是你從Python初學(xué)者發(fā)展成嫻熟的Pythonista的11條道路。 不管你選擇從何開始,必定會(huì)找到無數(shù)發(fā)展編程技能的光明大道。隨便選一個(gè)然后開始就是了!你的項(xiàng)目想法沒有出現(xiàn)在這份清單里面?可以在評(píng)論區(qū)寫出來!提出你的完美項(xiàng)目建議。 如果你還是找不到方向,需要?jiǎng)e人推動(dòng)你一下,可以看看我們關(guān)于形成積極學(xué)習(xí)策略的提示,幫助你回到正軌。
該文章在 2018/7/18 23:12:58 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |