第1天 | 12天搞定Python,告訴你有什么用?


掌握多一門編程語言,多一種選擇,多一份機遇,更何況學的是人見人愛,花見花開的Python語言。它目前可占據編程語言排行榜的第3名,是名副其實的“探花郎”,無論用它做什么(網絡爬蟲、人工智能、Web應用等) ,咱都不虧,開篇有益。

有趣的話,多說兩句,”無趣”的就總結概述。本章總結概述一下Python的發展歷史和特點,詳細介紹Python的運行和開發環境。

很多程序員,都不太喜歡了解編程語言的來源和發展歷史,覺得那個讀起來索然無味,廢話多多,但我還是建議你抽點時間看看,Python的來源確實有點意思。

1.1 Python來源

1989年的聖誕節,一位來自荷蘭,名叫Guidio van Rossum的年輕帥小伙子,為了打發無趣的時光,決定改善他參與設計,不是很滿意的ABC語言,隨着研究的深入和功能的完善,其特性超越了ABC。在給這個新的腳本語言命名時,他想起了喜愛的Monty Pythoh喜劇團體,於是取名為:Python。

通過這個故事,終於知道咱們為什么發明不了一門編程語言了,對,那是因為我們無論在什么節假日,都沒有無聊過,而且還豐富多彩。

歷經兩年后,也就是在1991年2月份時,Python終於面向大眾,發布了第一個公開版本,其版本號為0.9.0。它使用C語言開發實現,支持類、函數、異常處理,還有列表、字典等數據結構。

隨着更多程序員的加入,Python快馬加鞭,在1994 年1月份發布了 Python 1.0;在2000年發布了Python 2.0;在2008 年 12 月時, 正式發布了Python 3.0,它也被稱為 "Python 3000" 或 "Py3K。

隨着這幾年 Python 3 的使用率急劇上升,作為新手建議直接從 Python 3 學起。沒必從Python2入手,畢竟Python3和Python2是不兼容的,還有Python官方公布,會在 2020 年 1 月 1 日起,停止對 Python 2 的更新和官方支持。

到這,你可能會問:Python怎么會獲得那么多程序員的喜歡,它究竟有何特點?

1.2 有何特點

特點挺多的,咱只講幾處重點的。

(1) 簡單易學

Python的語法就像在讀英語一樣,簡單明了,一目了然,沒有多余的邊邊角角,讓你能夠更專注於解決業務問題,而無須花費時間去研究語言本身。

它是面向對象的高級語言,具有封裝、繼承、多態等特點,也就意味着你不用考慮如何管理程序內存使用等諸類底層細節。

(2) 免費開源

Python 是 FLOSS(自由/開放源碼軟件)之一。簡單地說,你可以自由地發布這個軟件的拷貝、閱讀它的源代碼、甚至對它做任何改動,都不用花一分錢。

無論你是出於學習,還是開發商業軟件,都不用擔心授權問題。商業軟件必然把客戶綁定在產權上,無法自拔,而開源軟件則可以讓商業客戶從這種折磨中解放出來。

(3) 跨平台

如果在某操作系統下開發的軟件,也可在其他系統上運行,那是多么幸福的一件事呀,而Python就可以滿足。

如果你不使用依賴於系統特性的代碼,那么你的Python 程序無需任何修改就可以運行在Linux、Windows、FreeBSD、macOS、Solaris、OS/2、Amiga、AROS、BeOS、Palm OS、VxWorks、PlayStation等平台上。

(4) 豐富的庫

Python擁有眾多標准庫和第3方庫,你想要的各種領域的庫幾乎都能找得到,那意味着你可以不用重復發明輪子,從而提高工作效率,加快開發進度。

它有正則表達式、文檔生成、單元測試、線程、數據庫等標准庫。也有網頁瀏覽器、FTP、電子郵件、XML、密碼系統、GUI(圖形用戶界面)、Tk 和其他與系統有關的操作。

還有許多其他高質量的第3方庫,如用於桌面系統開發的wxPython,用於科學計算或數值計算的Numpy和Matplotlib等等。

(5) 解釋性

Python是一門解釋性語言,這意味着它不需要在運行前編譯,在運行程序的時候才翻譯,專門的解釋器負責在每個語句執行的時候解釋程序代碼。

相對於編譯型語言(如C++或Delphi),Python運行效率會低一些,可好在它的開發效率高,以空間換時間。

隨着硬件的升級和設計思想的變革,編譯型和解釋型語言越來越籠統,而解釋型語言的自身特點也使得編譯器服務商願意花費更多的時間和成本去優化解釋器,解釋型語言性能超過編譯型語言是遲早問題。

1.3 應用領域

國外的Twitter、Google、Yahoo,Facebook,國內的豆瓣、果殼、春雨醫生、知乎(Quora) 等知名企業都在使用Python,我們來看看它可應用在哪些領域里。

(1) 人工智能

各種人工智能算法、機器學習、神經網絡、深度學習等大多基於Python編寫,尤其在PyTorch推出后,更讓其站在了AI時代的前端。

PyTorch有許多優勢,如動態圖機制、網絡構建靈活以及擁有強大的社群等。由於其靈活、動態的編程環境和用戶友好的界面,受到AI研究人員的推崇。

(2) 網絡爬蟲

在爬蟲領域,Python開源庫眾多,一搜一大把,而且還簡單易用。其中最為突出的要數Scrapy框架。

Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,只需要實現少量代碼,就能夠快速的抓取到數據內容並進行分析和統計。

(3) Web應用

基於Python的Web開發框架比關鍵字還多,常見的有Django、Tornado、Flask、web.py、 Bottle等。

其中Django架構,應用范圍最廣,開發速度非常快,學習門檻也低,能夠幫助你快速的搭建起可用的Web應用程序。

(4) 桌面軟件

開發了那么多年的程序,經常說跨平台,跨平台,只是真正跨過的應用有幾個?大多數Web應用,從一開始定下來平台后,后期很少更改的。

桌面系統就不同了,從一開始就希望它可以運行在多個平台上,提供給更多的人使用。Python在這方面也不含糊,提供了PyGTK、PySide、PyQT、WxPython等快速開發桌面統並可跨平台的框架。

其中使用WxPython的企業最多,而它也是Python創始人,Guidio大哥的最愛。

(5) 游戲開發

在網絡游戲開發中,Python有很多應用,相比於C++或 Lua,Python有更高階的抽象能力,可以用更少的代碼描述游戲業務邏輯。

它非常適合編寫1萬行以上的項目,而且能夠很好的把網游項目的規模控制在10萬行代碼以內。

其中Pygame游戲框架,封裝了圖形、動畫、文字、音頻等操作,方便使用,是眾多游戲開發工程師的福音。

(6) 科學計算

在早期的時候,NASA和Google就大量使用Python進行各種復雜的科學運算,積累了豐富的科學運算庫。

隨着NumPy、SciPy、Matplotlib等眾多程序庫的開發,Python越來越適合做科學計算、繪制高質量的2D和3D圖像。

(7) 雲計算開發

如果了解過雲計算相關的技術,應該知道目前很火的雲計算框架OpenStack就是由Python開發的,如果使用它,就需要具備Python的相關技能。

幾乎每家雲計算服務商,都提供了Python應用的相關接口,使用它,可很快的進行集成開發。

(8) 金融分析

數據分析已經深入到各個行業中,尤其在金融領域的應用是最廣闊的。了解並掌握了Python金融數據分析,對於今后就業相當有吸引力。

Python中的Numpy、Pandas、Scipy等數據分析模塊,可以實現金融分析策略,如“雙均線”、“周規則交易”、“羊駝策略”等。

一個當了10年技術總監的老家伙,分享多年的編程經驗。想學編程的朋友,可關注今日頭條:老陳說編程。我將分享Python,前端(小程序)和App方面的編程知識。關注我,沒錯的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM