做者 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)。
轉載請註明出處。
原文: https://www.jianshu.com/p/2b6...《Python探索之旅》全系列python
若是你決定學習這個系列課程,那我替你感到高興!程序員
由於我堅信:學一點 Python,以及圍繞 Python 展開的 Web 開發、數據分析和人工智能,等等知識,對於程序員特別是這個時代的程序員來講是很是有好處的。
固然,我不是培訓機構,我不會告訴你 Python 無所不能,不學 Python 就「錯過一個億」,等等。
最近幾年,Python、人工智能、數據分析,等等佔據了各大媒體的頭版頭條,能夠算是最熱門的幾個詞彙了。有不少人開始以人工智能創業,很多公司也以高薪聘請人工智能方面的專業人士。可是供需不平衡,目前人工智能方面的人才還很稀缺,專家更是寥寥。編程
以前我寫過一篇文章:《最近迫切應學的編程語言》,說的就是 Python 語言。後端
如今,Python 在我國也愈來愈受重視,不少 Python 相關的職位薪資也不錯,Python 還被編寫進了中小學乃至幼兒園的編程書籍。Python 目前在編程語言排行榜(如 TIOBE 排行榜)中也位列前三。瀏覽器
這個系列教程首先會帶你們學習 Python 這門有趣的語言,入門 Python 的面向對象編程。以後會學習 Python 能夠作的不一樣事情,例如 Python 的著名庫(Numpy,Pandas,Matplotlib,等等)。再到數據分析、Web 開發、人工智能的不一樣內容。會講到 Python 的更多框架,例如 Django 和 Flask 等 Web 框架;人工智能的一些熱門框架(好比 TensorFlow,PyTorch,等等),再用這些框架來開發一些有趣的應用。Python 在爬蟲領域的使用也會涉及。服務器
若是你已經有必定編程經驗,學過編程語言,那學習這個系列課程會很輕鬆。若是你是還沒入門編程的新人,那也無妨,由於這個系列教程就和個人大多數教程同樣,都是適合零基礎入門的。微信
Python 相對容易入門(固然,要精通也有難度),相比於 C 語言、C++ 和 Java 的入門,要輕鬆很多。網絡
我以前寫過一篇文章:《第一門編程語言選什麼好》,裏面講了能夠從 C 語言或 Python 入門編程。固然了,也有很多人推薦從 Java 入門,也是不錯的選擇。框架
若是你想學習 C語言,能夠看個人很受歡迎的免費系列教程《C語言探索之旅》。個人其餘系列教程請你們在個人帳號中搜索~編程語言
在這第一課中,我會首先帶你們瞭解一下 Python 這門語言。咱們首先會解釋一下什麼是編程語言,而後咱們會回顧一下 Python 的歷史(Python 仍是有點「年紀」的),並講解 Python 能夠作什麼。
好了,坐好扶穩,咱們要發車了~
放心,咱們不會討論生物學和哲學的理論,因此請不要離開!
人類的交流是比較容易理解的。你目前正在看個人文章,能夠看到不少中文字。
你能夠看懂我在寫什麼,那是由於咱們在語言和書寫方面都遵照了某些約定。在中文(或英語、法語,乃至其餘語言)中,有語法和拼寫規則。 經過有意識地瞭解這些規則,並根據狀況或多或少地善用這些規則,人與人就能夠進行交流了。
然而,這些語法和拼寫規則,也是很容易規避的:沒有人能夠說本身記住了某種人類語言的所用語法和拼寫的規則。並且,也不多有人特別在乎。 畢竟,即便你犯了錯誤,與你交流的人也能夠理解你。
若是咱們看到的一篇文章裏有幾個錯別字,並不會妨礙咱們理解文章的意思。若是有老外用中文和咱們交流,即便他們的中文語法不是很標準,發音有點失準,也不妨礙咱們理解彼此。
人與電腦的交流,和人與人之間的交流是不同的。是的,電腦也能夠交流。
是的,你的計算機(computer,也被稱爲「電腦」)會與你交流,而且你也會與之交流。
雖然,你的計算機應該不會告訴你「我餓了」,「冬天很冷」,「你剛纔播放的電影是部歡樂的喜劇」,等等。
但其實,你和計算機之間的交流也並無什麼特別神祕的東西。當你雙擊瀏覽器的應用圖標時,它會被打開。當你點擊瀏覽器應用的左上角或右上角的紅叉時,瀏覽器就知道要被關閉了。
咱們人類交流最經常使用的仍是語言(Language),好比咱們中國人就用中文,國際上用得比較多的語言是英語,也有用西班牙語和法語的,等等。
實際上,你的電腦無論是跟你交流仍是本身與本身「對話」,都是基於一門特別的語言:機器語言(Machine Language)。
你也許會說:「好吧,人說人話,機器說機器話。那什麼是機器語言呢?」
計算機能夠執行的基本操做是很是基礎的,包括兩個數字的加法,減法,乘法,除法,整數與否。 可是,這五項操做倒是最複雜的仿真軟件或超大型遊戲的底層機制。
全部這些軟件的工做方式基本相同:
一系列指令?這又是什麼意思呢?
例如,若是你單擊瀏覽器的右上角或左上角的紅叉,就能夠要求瀏覽器程序關閉。可是,就機器語言而言,僅此一項操做就須要大量機器語言的指令。
你能夠想象,用機器語言(也就是二進制語言。二進制語言僅包含 0 和 1)與計算機(計算機只能理解二進制)交談,既不豐富,也不是很是實用,在任何狀況下都不是頗有趣。
例如,1000100110111101101110001101011100110111101110101011001
也許能夠表示「你好」(固然了,這只是假設。我並不知道這一長串二進制碼錶示什麼)。簡而言之,與計算機進行二進制聊天是很是累人的(至少對於咱們人類來講)。
爲此,咱們發明了編程語言,來簡化與計算機的通訊。
編程語言(Programming Language)是咱們人類更容易理解的語言。編程語言和機器語言的機制是相似的,卻更易於被人類理解。
可是,爲了讓機器可以理解,仍是必須將編程語言寫的程序先翻譯成 0 和 1 的二進制語言(也就是機器語言)。以下圖:
大致來講,程序員「只須要」用所選擇的編程語言編寫代碼行,後面的步驟通常不須要特別操心,你選擇的編程語言的某些軟件和操做系統自會處理。
目前來講,尚未必要對這些比較複雜的機制進行更多的解釋。若是你未能理解上面所說的詞彙和全部的解釋,對後續課程的學習也並不會有什麼妨礙。可是我以爲給出一些與計算機進行通訊的方式的細節是頗有趣的。
編程語言種類繁多,Python 也是一門編程語言。
Python 就相對比較接近人類的天然語言。比 Java,C語言和彙編語言,離機器語言更遠:
這也是 Python 相對容易入門的一大緣由。
Python 被稱爲「小白首選高級語言,老鳥必備第二語言」,是一種通用(general-purpose)語言,這意味着它能夠用於構建幾乎全部東西!
Python 很是適合用於 Web 後端開發、數據分析、人工智能和科學計算。許多開發人員還使用 Python 構建生產力工具,遊戲和桌面應用程序。
例如:
對於數據科學(Data Science),因爲有許多可用的庫,Python 常常被用於數據操做和可視化。
Python 這門編程語言還算比較年輕,第一個版本是 1991 年發佈的。相比於 1972 年發佈的 C 語言,算是「小夥子」了。
也許有很多人認爲 Java 比 Python 「年紀更大」(主要由於在咱們中國,Java 比 Python 更早普及。一開始 Python 也沒有獲得太多重視),其實 Python 比 Java 更早出現,Java 是 1995 年由著名的 Sun 公司(已被 Oracle 收購)發佈的。
Python 的做者是荷蘭人,叫 Guido van Rossum(吉多·範羅蘇姆。外號「龜叔」)。見下圖:
能夠看到,Python 之父的髮量仍是不少的。
而最複雜的編程語言(之一。其實我並不太想加這個「之一」)的 C++ 語言的發明人 Bjarne Stroustrup(本賈尼·斯特勞斯特盧普)的髮量就有點尷尬了,見下圖:
因此說,「C++ 之難,難於上青天」,此話不假。
固然了,這是玩笑話。編程語言的發明人的髮量並不能做爲語言難易程度的衡量標準。
1989 年,在一個寒冷的夜裏,來自荷蘭的開發者 Guido van Rossum 感到很無聊。他正在尋找一種在聖誕節打發時間的方法,由於他的公司在聖誕節期間不開門。
當人們正在準備聖誕節,佈置聖誕樹時,他卻用本身的電腦(蘋果 的 Mac 電腦)發明了一種語言(嚴格地說,是開始用 C語言來編寫 Python 的編譯器)。做爲喜劇團體 Monty Python 的忠實擁護者,他將這門新的編程語言命名爲 Python。這也是爲何 Python 開發人員大多「具備幽默感」(參看 Python 官網的 https://www.python.org/doc/humor 「幽默」欄目)並樂於在他們的代碼中放置一些小玩笑的緣由。
2001 年,Python 的非營利組織 Python Software Foundation(Python 軟件基金會) 成立了。
Python 的官網是 https://www.python.org 。
Python 在英語中是「巨蟒」的意思,所以 Python 的 logo 使用了「蠢萌」的大蟒蛇,儘管它的命名與蟒蛇並無什麼關係。
Python 是一種功能強大的語言,既易學又具備豐富的可能性。
一旦你將 Python 安裝到計算機上,你便擁有了許多功能,由於這些功能是集成在這門語言中的。並且,咱們以後會看到,擴展 Python 的現有功能也很是容易。所以,存在所謂的庫(library)來幫助開發人員處理特定項目。例如,能夠安裝各類圖形庫來用 Python 開發圖形界面。
具體來講,咱們可使用 Python 建立以下的東西:
Python 和其龐大的庫也給了咱們實現不少任務的可能:
固然了,你不可能一會兒學會全部這些。但這門課程會讓你掌握足夠多的基礎,以便以後你能夠開發大型 Python 項目。
Python 是一門解釋型的編程語言,也就是說,你發送給它的指令在被讀取時會被「轉錄」(解釋)爲機器語言。
另外,也有一些編程語言(例如 C語言和 C ++)被稱爲編譯型語言,由於在執行它們以前,須要專門的軟件負責將程序代碼轉換爲機器語言,此步驟被稱爲「編譯」(compilation)。每次更改代碼後,都必須從新調用編譯步驟。
解釋型語言的優勢是簡單(在執行程序以前不會通過編譯步驟)和跨平臺性(如 Python 之類的語言在 Windows、Linux 或 macOS 等操做系統下都能很好地工做,並且你沒必要爲了從一個操做系統轉到另外一個系統而進行任何代碼更改)。
這並不意味着編譯型語言不是跨平臺的,可是你必須使用不一樣的編譯器。而且從一個操做系統到另外一個操做系統,某些指令是不兼容的,運行的結果會有所不一樣。
不過,事實證實,編譯型語言比解釋型語言要快得多(由於即時翻譯程序會減慢執行速度)。儘管隨着不斷的改進,編譯型語言和解釋型語言的速度差別會愈來愈小。此外,你須要在操做系統上安裝 Python(解釋器),以便計算機能夠理解你的代碼。
自 2001 年 Python Software Foundation 被建立以來,經年累月,Python 語言經歷了一系列的版本改動。這些版本被稱爲 Python 2.x(例如,2.3,2.5,2.6,2.7)。
然而,2009 年 2 月 13 日,Python 的 3.0.1 版本發佈。3.0.1 版本破壞了以往版本中廣泛存在的向後兼容性(Backwards compatibility)。
通常來講,當程序員們開發一門編程語言的新版本時,總會避免刪除或修改過多的舊功能,以便向後兼容(也就是之前用這門語言的舊版本編寫的程序也能夠運行在新版本上)。
自此,Python 2 和 Python 3 就有點「分道揚鑣」了。Python 2 和 Python 3 的不兼容性也是以往 Python 被詬病的一大緣由。
萬幸的是,Python 2 版本在 2020 年 1 月 1 日已經正式中止官方更新了。
所以,我強烈建議你直接學習 Python 3 版本,不須要理會 Python 2 版本了。
在這個系列課程中,咱們也會用最新穩定的 Python 3 版本。
今天的課就到這裏,一塊兒加油吧!
下一課:[Python探索之旅 | 第一部分第二課:安裝Python和Python的經常使用開發軟件]()
我是 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)運營者,慕課網精英講師 Oscar 老師,終生學習者。 熱愛生活,喜歡游泳,略懂烹飪。 人生格言:「向着標杆直跑」