歡迎光臨
每天分享高質量文章

大家都在學的 Python,可以用來乾什麼?

來源:

https://my.oschina.net/u/3839556/blog/1858723

作者:Python燕大俠

轉載請在文中註明來源和作者


編者按:Python因為簡單全面易用而成為近年來大熱的程式語言。但是很多人學習了這門餘元的語法和基本功能之後卻不知道Python能幹什麼以及怎麼做。Realpython.com上面的一篇文章於是把Python可以做的事情以及不適合做的事情進行了總結。更棒的是,裡面還列舉瞭如何做這些事情的教程和專案案例,是非常適合上手的資源彙總。


你做到了:你已經完成了一門課程,或者終於看完了一本教你用Python學習程式設計基礎的書。你已經掌握了串列、字典、類,也許甚至還有面向物件的概念。

那麼……接下來呢?


Python是一門非常全面的程式語言,在各個不同領域都有著繁多的應用。如果你已經掌握了Python的基礎並且恨不得馬上用這門語言做點東西,那現在就是找出下一步應該做什麼的時候了。


在本文中,我們提供了若干不同的專案、資源以及教程,你可以利用這些來開始做東西。


別人用Python做了什麼


你可能會在想,在現實世界裡別人都用Python開發了什麼東西呢。那麼首先我們先迅速看一下其中一些大的技術公司是怎麼使用這門語言的。


Google這家公司從一開始就使用Python了,而且在這家技術巨頭的主要伺服器端語言陣營中贏得了一席之地。Python的仁慈的獨裁者Guido van Rossum甚至還在那裡待過幾年,負責監管這門語言的開發工作。


Instagram喜歡Python是因為它的簡潔。這項服務以執行著“全世界最大的Django web框架部署”著稱。而Django完全是用Python寫出來的。


Spotify將這麼語言用到資料分析和後端服務上。據他們的團隊說,Python的易用讓他們擁有了一條超快的開發渠道。Spotify要進行海量分析來給使用者提供推薦,所以他們需要一個簡單又好用的東西。Python正好是救兵!


你還可以看看這篇文章去瞭解其他公司都用Python乾什麼。如果你已經被說服的話,我們就開始吧!


你可以用Python做什麼


從web開發到資料科學、機器學習等等,Python在現實世界中的應用是無限的。以下一些專案將會輔助你最終將你的Python技能用到正道上。


#1:將乏味的事情自動化


這是一本“針對全新初學者實用程式設計”的資源。就像標題所述,這本書教你如何將乏味的任務自動化,比如更新電子錶格或者重新命名計算機的檔案。這是想要掌握Python基礎的任何人的完美起點。


你將有機會聯絡自己到目前為止學到過的東西,去建立字典、抓取web,折騰檔案,並且建立物件和類。你在這本書遇到的上手應用會為你聽過現實世界中的結果,你可以馬上就看到。


這一資源有不同的格式,可保證最好的學習體驗。你可以到Amazon上面去買物體書或者免費在網上閱讀。


#2:隨時跟蹤比特幣價格


這段時間似乎人人都在講比特幣。自從2017年12月價格達到將近20000美元的高點後,加密數字貨幣已經進入到數百萬人的腦海裡。它的價格在不斷波動,但是很多人都認為這是一筆值得的投資。


如果你正在尋求靠這波虛擬淘金熱賺上一筆,想知道什麼時候該出手,那就得隨時瞭解比特幣的價格。這門教程可以教你如何利用Python技能開發出一項比特幣價格通知服務。


這一專案的基礎是IFTTT小程式的建立。你講學會如何利用請求庫來傳送HTTP請求以及如何利用webhook將你的app與外部服務連線。


這是對加密數字貨幣感興趣的Python初學者完美的初始專案。你用這一教程開發的這項服務可以延伸到其他的貨幣,所以別擔心,以太坊也能用上。


#3:建立一個計算器


這個簡單的專案是進入GUI程式設計的一個可靠的辦法。開發後端服務是部署的重要部分之一,但是可能也需要考慮前端的事情。建立使用者可輕鬆與之互動的應用就顯得無比重要。


如果你對UX和UI感興趣,那就看看這門教程。從中你會接觸tkinter 模組,這是標準的圖形化使用者介面軟體包,通常是跟Python捆綁在一起的。


tkinter 模組是對Tcl/Tk進行封裝的wrapper,是Tcl指令碼語言與Tk GUI框架擴充套件的結合。如果你已經安裝了Python,那你就應該已經有tkinter框架可用了。一個簡單的呼叫即可喚出:


frim tkinter import


一旦你完成了這一步設定,就可以用Python繼續開發你的第一個GUI計算器了。


練習運用tkinter模組,看著你的願景慢慢在螢幕上實現。然後,一旦你練過手了,就可以拓展學習Python其他的GUI工具包了。更多資訊可以看看Python GUI程式設計的官方檔案。


#4:挖掘Twitter資料


感謝網際網路以及逐步壯大的物聯網,我們現在能訪問的資料量之大甚至在10年前都是無法想象的。分析是任何跟資料打交道的領域的很大一部分。大家都在討論什麼?我們從他們的行為中能看到什麼樣式?


Twitter是獲得其中一些問題答案的好地方。如果你對資料分析感興趣,則Twitter資料挖掘專案就是利用你的Python技能回答有關周圍世界的問題的好辦法。


我們的Twitter情緒分析教程將用一個docker環境教你如何挖掘Twitter資料並且分析使用者情緒。你將學會如何用Twitter註冊一個應用,只有這樣你才能訪問他們的streaming API。


你會看到如何利用Tweepy來過濾想要抓取的推特,用TextBlob來計算哪些推特的情緒,用Elasticsearch來分析他們的內容,以及用Kibana來對結果進行視覺化。當你完成這門教程後,你應該就可以深入學習其他利用Python來進行文書處理和語音識別的專案了。


#5:用Flask建立一個微部落格


似乎現在人人都有一個部落格,但是給自己在網上設立一個中心樞紐不算什麼糟糕想法。隨著Twitter和Instagram的出現,微部落格尤其流行起來。在Miguel Grinberg搞的這個專案裡,你會學習到如何搭建自己的微部落格。


這門教程叫做“Flask Mega指南”,內容可以說不負其名。整篇教程分為23章,學習完之後你可以對Flask微型web框架擁有深刻瞭解。到專案最後,你應該就能得到一個功能完整的web應用了。


你不需要瞭解有關Flask的一切就可以開始,所以對於那些恨不得馬上動手嘗試web開發的人來說這是非常好的。


這個教程最近還更新了,把有助於你成為更好的web開發者的內容也納入進來了。你可以在網上免費閱讀,或者到Amazon去買一本紙質版,或者在他的線上課程中讓作者手把手教你。一旦你做完專案,你就可以繼續學Django,甚至開始建立更大規模的web應用了。


#6:建立一個區塊鏈


儘管區塊鏈起初開發出來是作為金融技術使用的,但現在卻蔓延到了其他的各個行業。區塊鏈幾乎可以用到任何交易上面:從房地產到病歷轉移等等。


如果自己做一個的話牛就會對它的機制有更好的瞭解。Hackernoon的教程將輔助你從零開始實現一個區塊鏈。到專案最後,你會對這一交易技術的機制擁有深入的瞭解。


做區塊鏈需要跟HTTP和request庫打交道。一旦你安裝了Flaskweb框架,你就可以透過網際網路用HTTP請求跟你的區塊鏈進行通訊了。


記住,區塊鏈不僅僅適用於加密狂熱者。一旦你自己開發了一個區塊鏈之後,可以看看能不能找到有創意的手段在你感興趣的領域實現這門技術。


#7:Twitter Feed控制


對開發web應用感興趣但是對開始一個大型專案沒有信心?別擔心——我們有東西給你。跟著我們一起學習如何在幾個小時內建立一個簡單的web app。


Bob Belderbos分享了自己是如何實現第40屆PyBites Code Challenge 的,在這項程式設計挑戰中,參與者需要建立一個web應用來更好地在Twitter上控制每日Python提示的新聞流。你可以通讀他的實現以及程式碼瞭解究竟。


這次你用的不是Flask,而是微型web框架Bottle。Bottle以迅速部署應用的低依賴度解決方案著稱。既然它是輕量且易用的,所以你很快就能搭建好你的應用。


你還會用Tweepy模組載入Twitter API的資料。你會將資料儲存到 SQLAlchemy 資料庫裡面,所以你還會練習到SQL查詢的編寫。Fork這個程式碼庫就可以開始了!


#8:玩PyGames


這個是給喜歡樂子的人準備的!Python可用於對各種電玩遊戲、冒險遊戲以及益智遊戲進行編碼,你可以在數天之內完成部署。經典的遊戲包括猜單詞、一字棋、乒乓球等等,這些都可以用你剛學會的程式設計技能去做。


Pygame庫使得自己開發遊戲變得更加容易。它包含了開發遊戲所需的幾乎一切。


Pygame既是免費的也是開源的。裡麵包含有計算機圖形庫和聲音庫,你可以利用這些可以來給你的應用增加互動功能。


你可以用這個庫來開發很多的遊戲。不管你選擇要做哪一個,請隨意把你的東西Pygame社群!


#9:選擇你的冒險之旅


如果你更喜歡講故事,用Python仍然可以開發出很酷的東西來。


這門語言極其容易編寫,是創作互動式小說的完美環境。這個免費資源會指導你如何用Python編寫一個文字型的冒險遊戲的過程。


教程需要掌握一些Python程式設計的基本知識,但是它能夠幫助你彌補自己所瞭解的知識與如何運用這一知識到應用開發上之間的鴻溝。


如果你希望將你的故事提升到新的水平,可以用類似Ren’Py這樣的軟體引擎新增聲音和影象到你的遊戲裡面,創作出成熟的視覺化小說。(然後你可以把它放到Steam上看看大家的反應!獲得對自己作品反饋的最好方式是把它釋出到世界上)


#10:對機器學習說“Hell World!”


對於對人工智慧感興趣的任何人來說,機器學習是理解的關鍵領域。然而,想要開始學習機器是很嚇人的,而且這個領域發展很快,總是在變。


幸運的時候,網上有很多資源可以幫助你試水一下再投入到資料科學的海洋之中。Jason Brownlee的這門教程是關於用Python處理機器學習非常精彩的介紹。


從中你將瞭解到其中一些最常見的機器學習演演算法,以及可以輔助你做出預測的Python庫。


這門教程極其簡單而且非常容易學。你可以在幾個小時之內完成學習。等你學完之後,就會對如何利用Python進行資料科學工作有了迅速的瞭解。


如果你確認自己已經準備好進一步深入學習了,可以看看我們的海量資料科學教程,在這裡你可以學習如何分析指紋、如何建立視覺化,以及如何識別語音和麵部,這一切都是用Python來做的。


#11:接受挑戰


如果你不確定要冒險嘗試上述的一些較大型的專案,而小一點的你又不感興趣的話,那你可能就會想還有其他可以練手的嗎?怎麼才能找到令你興奮的東西呢?


編碼挑戰可以幫助你聯絡你的Python技能並且對你可以用Python做到的所有不同事情有初步瞭解。


簡而言之:給你一個問題,你必須用Python找到一個解決方案。


你有機會開發對你有意義的問題的實現,但你也有機會透過提示來深入探究Python語言。這些會告訴你應該匯入哪些模組來幫助你解決挑戰。


編碼挑戰是以廣度優先的方式盡可能多地學習庫、方法、以及框架的好辦法。在這裡保證你可以找到想要進一步探索的東西。你可能甚至還會回到這份清單裡面,並且發現你用來解決其中一個挑戰的東西已經激起了你新的興趣!


以下的挑戰你可以試試:


The Python Challenge有20個多個關卡可供挑戰。建立小規模的Python指令碼來找到相應關卡的解決方案。網際網路上到處都有相關解決方案的提示,不過最好還是自己找到解決辦法!


PyBites Code Challenges的挑戰也有50多個!這些挑戰鼓勵你透過開發應用完成任務來掌握Python。


如果你打算自己搞定這些挑戰而不是按照教程步驟去編碼的話,那麼找一份可以隨時求助的資源總是好的。當你在解決這些挑戰時,Python Tricks這本書是非常出色的案頭資訊源。它會帶領你探索Python不那麼知名的地方,而那些地方正是你解決問題所需要的。


Python可能不應該乾的事情


顯然Python是非常全能的語言,你可以用它來做很多事情。但你沒法用它來做完所有事情。實際上,有些東西Python就不是很擅長。


作為一門解釋性語言,Python跟裝置驅動程式這樣的底層裝置打交道會比較麻煩。比方說,如果你只想用Python來寫一個作業系統的話會遇到問題。底層應用最好還是堅持用C或者C++來寫。


然而,甚至這一斷言恐怕也持續不了多久。作為對Python靈活性的證明,有人正在致力於擴充套件Python在底層互動中的可用性的專案。MicroPython只是其中之一,其標的就是為Python提供底層能力。


如果我想做的東西沒有出現在這份清單裡面怎麼辦?


沒關係!這份東西也不是面面俱到的——用Python你可以開發無數我們沒有改寫到的工具和應用。不要把你自己侷限在這份清單裡面。這隻是一份資源,讓你有個地方可以開始。


這個影片可以告訴你Python還適合哪些其他專案。你還可以看看這篇部落格文章,瞭解去哪裡尋找更多的Python專案靈感。


最後,該你來做一下調查詢到能調動自己興趣的專案了。如果你不確定從何開始,那就關註我們的Twitter賬號吧。我們會定期分享來自讀者社群的很酷很有趣的專案。你可能會從中找到自己迫不及待想要做出貢獻的一個。


接下來呢?


好了,這就是你從Python初學者發展成嫻熟的Pythonista的11條道路。


不管你選擇從何開始,必定會找到無數發展程式設計技能的光明大道。隨便選一個然後開始就是了!你的專案想法沒有出現在這份清單裡面?可以在評論區寫出來!提出你的完美專案建議。


●編號475,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

 

演演算法與資料結構

更多推薦18個技術類微信公眾號

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂