編者按:Python由於簡單全面易用而成爲近年來大熱的編程語言。可是不少人學習了這門餘元的語法和基本功能以後殊不知道Python能幹什麼以及怎麼作。Realpython.com上面的一篇文章因而把Python能夠作的事情以及不適合作的事情進行了總結。更棒的是,裏面還列舉了如何作這些事情的教程和項目案例,是很是適合上手的資源彙總。前端
你作到了:你已經完成了一門課程,或者終於看完了一本教你用Python學習編程基礎的書。你已經掌握了列表、字典、類,也許甚至還有面向對象的概念。python
那麼……接下來呢?程序員
Python是一門很是全面的編程語言,在各個不一樣領域都有着繁多的應用。若是你已經掌握了Python的基礎而且巴不得立刻用這門語言作點東西,那如今就是找出下一步應該作什麼的時候了。web
在本文中,咱們提供了若干不一樣的項目、資源以及教程,你能夠利用這些來開始作東西。算法
在這裏仍是要推薦下我本身建的Python開發學習裙:304+零五零加上799,裙裏都是學Python開發的,若是你正在學習Python ,小編歡迎你加入,你們都是軟件開發黨,不按期分享乾貨(只有Python軟件開發相關的),包括我本身整理的一份2018最新的Python進階資料和高級開發教程,歡迎進階中和進想深刻Python的小夥伴docker
別人用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條道路。
無論你選擇從何開始,一定會找到無數發展編程技能的光明大道。隨便選一個而後開始就是了!你的項目想法沒有出如今這份清單裏面?能夠在評論區寫出來!提出你的完美項目建議。
若是你仍是找不到方向,須要別人推進你一下,能夠看看咱們關於造成積極學習策略的提示,幫助你回到正軌。更多編程方面的分享請關注微信公衆號:程序員大牛!