1. 程式人生 > >學習 | Python之簡介&安裝&第一個Python程式

學習 | Python之簡介&安裝&第一個Python程式

一文推薦的廖雪峰的教程,有同學建議基於此寫一系列實踐過程,那麼從本篇開始,會陸續寫Python的實踐學習過程。文末可加微信群~

源:https://www.liaoxuefeng.com/

用Python可以做什麼?可以做日常任務,比如自動備份你的MP3;可以做網站,很多著名的網站包括YouTube就是Python寫的;可以做網路遊戲的後臺,很多線上遊戲的後臺都是Python開發的。總之就是能幹很多很多事啦。

如果你是小白使用者,滿足以下條件:

  • 會使用電腦,但從來沒寫過程式;

  • 還記得初中數學學的方程式和一點點代數知識;

  • 想從程式設計小白變成專業的軟體架構師;

  • 每天能抽出半個小時學習。

不要再猶豫了,我們一起學習!

Python簡介

Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式語言。

現在,全世界差不多有600多種程式語言,但流行的程式語言也就那麼20來種。如果你聽說過TIOBE排行榜,你就能知道程式語言的大致流行程度。這是最近10年最常用的10種程式語言的變化圖:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

總的來說,這幾種程式語言各有千秋。C語言是可以用來編寫作業系統的貼近硬體的語言,所以,C語言適合開發那些追求執行速度、充分發揮硬體效能的程式。而Python是用來編寫應用程式的高階程式語言。

當你用一種語言開始作真正的軟體開發時,你除了編寫程式碼外,還需要很多基本的已經寫好的現成的東西,來幫助你加快開發進度。比如說,要編寫一個電子郵件客戶端,如果先從最底層開始編寫網路協議相關的程式碼,那估計一年半載也開發不出來。高階程式語言通常都會提供一個比較完善的基礎程式碼庫,讓你能直接呼叫,比如,針對電子郵件協議的SMTP庫,針對桌面環境的GUI庫,在這些已有的程式碼庫的基礎上開發,一個電子郵件客戶端幾天就能開發出來。

Python就為我們提供了非常完善的基礎程式碼庫,覆蓋了網路、檔案、GUI、資料庫、文字等大量內容,被形象地稱作“內建電池(batteries included)”。用Python開發,許多功能不必從零編寫,直接使用現成的即可。

除了內建的庫外,Python還有大量的第三方庫,也就是別人開發的,供你直接使用的東西。當然,如果你開發的程式碼通過很好的封裝,也可以作為第三方庫給別人使用。

許多大型網站就是用Python開發的,例如YouTube、Instagram,還有國內的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。

龜叔給Python的定位是“優雅”、“明確”、“簡單”,所以Python程式看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。

總的來說,Python的哲學就是簡單優雅,儘量寫容易看明白的程式碼,儘量寫少的程式碼。如果一個資深程式設計師向你炫耀他寫的晦澀難懂、動不動就幾萬行的程式碼,你可以盡情地嘲笑他。

那Python適合開發哪些型別的應用呢?

首選是網路應用,包括網站、後臺服務等等;

其次是許多日常需要的小工具,包括系統管理員需要的指令碼任務等等;

另外就是把其他語言開發的程式再包裝起來,方便使用。

最後說說Python的缺點。

任何程式語言都有缺點,Python也不例外。優點說過了,那Python有哪些缺點呢?

第一個缺點就是執行速度慢,和C程式相比非常慢,因為Python是解釋型語言,你的程式碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而C程式是執行前直接編譯成CPU能執行的機器碼,所以非常快。

但是大量的應用程式不需要這麼快的執行速度,因為使用者根本感覺不出來。例如開發一個下載MP3的網路應用程式,C程式的執行時間需要0.001秒,而Python程式的執行時間需要0.1秒,慢了100倍,但由於網路更慢,需要等待1秒,你想,使用者能感覺到1.001秒和1.1秒的區別嗎?這就好比F1賽車和普通的計程車在北京三環路上行駛的道理一樣,雖然F1賽車理論時速高達400公里,但由於三環路堵車的時速只有20公里,因此,作為乘客,你感覺的時速永遠是20公里。

640?wx_fmt=jpeg

第二個缺點就是程式碼不能加密。如果要釋出你的Python程式,實際上就是釋出原始碼,這一點跟C語言不同,C語言不用釋出原始碼,只需要把編譯後的機器碼(也就是你在Windows上常見的xxx.exe檔案)釋出出去。要從機器碼反推出C程式碼是不可能的,所以,凡是編譯型的語言,都沒有這個問題,而解釋型的語言,則必須把原始碼釋出出去。

這個缺點僅限於你要編寫的軟體需要賣給別人掙錢的時候。好訊息是目前的網際網路時代,靠賣軟體授權的商業模式越來越少了,靠網站和移動應用賣服務的模式越來越多了,後一種模式不需要把原始碼給別人。

再說了,現在如火如荼的開源運動和網際網路自由開放的精神是一致的,網際網路上有無數非常優秀的像Linux一樣的開原始碼,我們千萬不要高估自己寫的程式碼真的有非常大的“商業價值”。那些大公司的程式碼不願意開放的更重要的原因是程式碼寫得太爛了,一旦開源,就沒人敢用他們的產品了。

640?wx_fmt=jpeg

當然,Python還有其他若干小缺點,請自行忽略,就不一一列舉了。

Python安裝

因為Python是跨平臺的,它可以執行在Windows、Mac和各種Linux/Unix系統上。在Windows上寫Python程式,放到Linux上也是能夠執行的。

要開始學習Python程式設計,首先就得把Python安裝到你的電腦裡。安裝後,你會得到Python直譯器(就是負責執行Python程式的),一個命令列互動環境,還有一個簡單的整合開發環境。

安裝Python 3.6

目前,Python有兩個版本,一個是2.x版,一個是3.x版,這兩個版本是不相容的。由於3.x版越來越普及,我們的教程將以最新的Python 3.6版本為基礎。請確保你的電腦上安裝的Python版本是最新的3.6.x,這樣,你才能無痛學習這個教程。

在Linux上安裝Python

如果你正在使用Linux,那我可以假定你有Linux系統管理經驗,自行安裝Python 3應該沒有問題,否則,請換回Windows系統。

在Windows上安裝Python

首先,根據你的Windows版本(64位還是32位)從Python的官方網站下載Python 3.6對應的64位安裝程式或32位安裝程式(網速慢的同學請移步國內映象),然後,執行下載的EXE安裝包:

640?wx_fmt=png

特別要注意勾上Add Python 3.6 to PATH,然後點“Install Now”即可完成安裝。

安裝成功後,開啟命令提示符視窗,敲入python後,看到上面的畫面,就說明Python安裝成功!

640?wx_fmt=png

在Windows上執行Python時,請先啟動命令列,然後執行python

在Mac和Linux上執行Python時,請開啟終端,然後執行python3

另,Python的直譯器很多,但使用最廣泛的還是CPython。如果要和Java或.Net平臺互動,最好的辦法不是用Jython或IronPython,而是通過網路呼叫來互動,確保各程式之間的獨立性。

第一個Python程式碼

在正式編寫第一個Python程式前,先複習一下什麼是命令列模式和Python互動模式。

命令列模式

在Windows開始選單選擇“命令提示符”,就進入到命令列模式,它的提示符類似C:\>

640?wx_fmt=png

Python互動模式

在命令列模式下敲命令python就看到類似如下的一堆文字輸出,然後就進入到Python互動模式,它的提示符是>>>在Python互動模式下輸入exit()並回車,就退出了Python互動模式,並回到命令列模式。

640?wx_fmt=png

下面,在互動模式下,通過“1+2”和“hello,python!”試下效果。

640?wx_fmt=png

這種用單引號或者雙引號括起來的文字在程式中叫字串,今後我們還會經常遇到。

也可以將print(‘hello,python!’)寫入hello.py,退出到命令列模式直接執行python hello.py

在Python的互動式命令列寫程式,好處是一下就能得到結果,壞處是沒法儲存,下次還想執行的時候,還得再敲一遍。所以,實際開發的時候,我們總是使用一個文字編輯器來寫程式碼,寫完了,儲存為一個檔案,這樣,程式就可以反覆運行了。

推薦兩款文字編輯器:sublime和Notepad++。請注意,用哪個都行,但是絕對不能用Word和Windows自帶的記事本。Word儲存的不是純文字檔案,而記事本會自作聰明地在檔案開始的地方加上幾個特殊字元(UTF-8 BOM),結果會導致程式執行出現莫名其妙的錯誤。

用文字編輯器寫Python程式,然後儲存為字尾為.py的檔案,就可以用Python直接執行這個程式了。

Python的互動模式和直接執行.py檔案有什麼區別呢?

直接輸入python進入互動模式,相當於啟動了Python直譯器,但是等待你一行一行地輸入原始碼,每輸入一行就執行一行。

直接執行.py檔案相當於啟動了Python直譯器,然後一次性把.py檔案的原始碼給執行了,你是沒有機會以互動的方式輸入原始碼的。

試著寫一個輸入和輸出的程式碼,分別用命令列模式和互動式模式執行測試一下:

640?wx_fmt=png

640?wx_fmt=png

任何計算機程式都是為了執行一個特定的任務,有了輸入,使用者才能告訴計算機程式所需的資訊,有了輸出,程式執行後才能告訴使用者任務的結果。

輸入是Input,輸出是Output,因此,我們把輸入輸出統稱為Input/Output,或者簡寫為IO。

input()print()是在命令列下面最基本的輸入和輸出。

學習交流,歡迎加入以下微信群:

640?wx_fmt=png

堅持不懈  難也變易

640?wx_fmt=jpeg

更多幹貨內容請關注微信公眾號“AI 深入淺出”

長按二維碼關注