1. 程式人生 > >大家都在學的程式語言 Python,可以用來幹什麼?

大家都在學的程式語言 Python,可以用來幹什麼?

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

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

那麼……接下來呢?

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

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

在這裡還是要推薦下我自己建的Python開發學習裙:304+零五零加上799,裙裡都是學Python開發的,如果你正在學習Python ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份2018最新的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條道路。

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

如果你還是找不到方向,需要別人推動你一下,可以看看我們關於形成積極學習策略的提示,幫助你回到正軌。更多程式設計方面的人分享請關注薇信工宗號:程式設計師大牛!

相關推薦

大家程式語言 Python可以幹什麼?

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

最難的10大程式語言排行榜Java只排第三第一齣乎意料

2018年12月的TIOBE程式語言排行榜已經出爐,Python重回前三,Go語言跌出前十,Visual Basic.NET漲幅明顯,保持第五名。 TIOBE排行榜是根據網際網路上有經驗的程式設計師、課程和第三方廠商的數量,並使用搜索引擎(如Google、Bing、Yahoo!)以及Wik

“人文視角” Python“哲學思維”搞技術

Python 是大資料時代的“寵兒”。大資料在帶來極大商業價值的同時,也面臨著巨大的人才需求。對於任何人來說,學習 Python 都是一個投資回報比不錯的選擇。 初學者在學習的過程中往往會遇到一些問題,例如什麼是類、庫和例項?針對諸如上述問題,本場 Chat,將 從“人文視角”和“哲學思維”從發,

最難的10大程式語言排行榜Java只排第三第一名出乎意料

2018年12月的TIOBE程式語言排行榜已經出爐,Python重回前三,Go語言跌出前十,Visual Basic.NET漲幅明顯,保持第五名。 TIOBE排行榜是根據網際網路上有經驗的程式設計師、課程和第三方廠商的數量,並使用搜索引擎(如Google、Bing、Yahoo!)以及Wi

十幾年總結的最經典的專案作為python爬蟲實踐教學!

一、前言 這篇文章之前是給新人培訓時用的,大家覺的挺好理解的,所以就分享出來,與大家一起學習。如果你學過一些python,想用它做些什麼又沒有方向,不妨試試完成下面幾個案例。   二、環境準備 安裝requests lxml beautifulsoup4 三個庫(下面程式碼

Python程式設計師們使用頻率最高的十五個Python程式語言 python

Programming concept. Future technology smart glass 當下最火的,使用頻率最高的十五個Python庫!各位都有用過嗎?關注並私信小編00免費領取Python學習了 Scrapy Scrapy庫是用於從網路結構化檢索資料,可以用

程式語言--python

Python垃圾回收機制 Python GC主要使用引用計數(referencecounting)來跟蹤和回收垃圾。在引用計數的基礎上,通過“標記-清除”(mark and sweep)解決容器物件可能產生的迴圈引用問題,通過“分代回收”(generationcol

C、C++、Java、JavaScript、PHP、Python、Ruby 這些語言分別主要開發什麼?

pansz,歡迎評論 此貼純科普用,以下僅僅說主要用途,其他用途限於篇幅關係省略之,不要鑽牛角尖。 C:系統底層,驅動程式,嵌入式底層,基礎服務程式。 C++:上層服務程式,應用API,大型3D遊戲。 Java:服務端應用程式,以及客戶端應用程式。 JS:在瀏覽器中執行的程式。 PHP:Web伺

C、C++、Java、JavaScript、PHP、Python、Ruby這些語言分別主要開發什麼?

c語言主要用於底層和驅動,編譯器開發 c語言高效底層,主要用於底層的開發,比如一些系統驅動;unix,linux系統和其上相關應用的開發; 有很多語言比如python、php、perl、ruby等都c語言開發的這些語言的核心庫,編譯器等開發都是c語言。比如鳥哥的php7的開發,就基

為什麼大家JAVA

隨著網路的發展,IT培訓受到了了越來越多人的追捧。很多想轉行的人到開發領域,JAVA培訓成為了許多人的首選!java擁有強大的開發者的數量達到了1000萬,Java是一種簡單的,面向物件的,分散式的,說明型的,健壯安全的,結構中立的,可移植的,效能優異、多執行緒

程式設計科普C、C++、Java、PHP、Python分別開發什麼?

首先,我們先普及一下程式語言的基礎知識。用任何程式語言來開發程式,都是為了讓計算機幹活。比如編寫一篇文章,下載一首MP3等。 而計算機幹活的CPU只認識機器的指令。所以,儘管不同的程式語言差異極大,最後都得“翻譯”成CPU可以執行的機器指令。 理論上任何語言幹任

這些網際網路大佬竟然程式設計師出身夢想還是要有的!

經常被網友問學計算機做程式猿有沒前途,其實我個人看來,不管你是哪個行業,如果能做到更堅持、更極致

自學程式語言必備各學科學習路線圖為你引路!(乾貨彙總不要錢)

說在前面:所有乾貨,學習資源的下載連結在最下方。 有了黑馬出品的各學科學習路線圖,很多自學的坑就可以跳過了! 我是一名黑馬程式設計師的老師,發現自學的同學遇到的困難大部分類似,大致分為以下幾類: 1、剛接觸程式語言,不知道該從哪裡學起,也不知道該學點啥;

2018年11月TIOBE程式語言排行榜Java穩居第一

每月的程式語言一出,我們都會發現,Java總是穩穩的佔據榜首,JAVA不可撼動的江湖地位,讓我們對於Java的學習更加有信心,對於Java未來的發展充滿著無限的期待。   再過兩個月,TIOBE 就將宣佈 2018 年的年度程式語言。依照目前的形勢來看,Java、C、C+、P

Python做什麼

Python是一款流行的計算機程式語言,具有簡單、易學、免費、開源、可移植、可擴充套件、可嵌入以及面向物件等特點,擁有強大的庫,簡潔的幾行程式碼即可實現強大的功能,應用範圍廣泛,可廣泛應用於以下領域: 1. Web開發 最火的Python web框架Django,支援非同步高併發的Torna

最全的程式語言彙總程式設計師你可要存好了!

程式語言(programming language),是用來定義計算機程式的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。 程式語言原本是被設計成專門使用在計算機上的,但它

為什麼JavaScript現在和將來程式語言首選?

軟體行業在不斷髮展,許多語言在過去幾年還是流行前沿,但是在今天卻已經顯得冗餘或者過時了。如今,新的語言以驚人的頻率不斷湧現,以滿足使用者不斷變化的需求。這些語言正被用來建立一類擁有許多先進功能並且可以迎合苛刻商業需求的應用。 在功能上,面向物件和指令碼語言這幾個選項上,開發者有許多選擇。 為了保持和程式世

網際網路歷史之程式語言python

python簡史 python是一種解釋型的、面向物件的、帶有動態語義的高階程式語言。 它由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行與1991年。 1991年,第一個python編譯器誕生,同時也是直譯器。它是用C語言實現的,並能夠呼

Python)# 請實現一個函式判斷一顆二叉樹是不是對稱的。注意如果一個二叉樹同此二叉樹的映象是同樣的定義其為對稱的.

# 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的. class TreeNode: def __init__(self, x): self.val = x self.lef

編寫一個學生管理系統程式記錄學生的資訊(包括姓名、年齡、性別、學號、分數)提供增加、刪除、查詢學生資訊的入口

剛抽到這題的時候沒在意,但是真正做起來的時候,才覺得這題對於零基礎的人來說是十分的困難。首先從題目的字數來看題目字數已經不少,其次看了幾遍題目之後還是無從下手。不管你們覺得難不難,反正對於零基礎的我來說,不是一個難字可以了得。最後只能找資料來尋求一些思路,看了一些這樣的帖子