初識Python

來源:互聯網
上載者:User

標籤:右鍵菜單   安裝路徑   pandas   按鈕   搜尋   知識點   滑鼠右鍵   pychar   小程式   

1 Python簡介1.1 什麼是Python

  Python是一種物件導向的解釋型電腦程式設計語言,由荷蘭人吉多·范羅蘇姆(Guido van Rossum)於1989年發明,第一個公開發行版發行於1991年。目前Python的最新發行版是Python3.6。

  Python是純粹的自由軟體,原始碼和解譯器都遵循 GPL(GNU General Public License)協議。Python文法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮排。

  Python具有豐富和強大的庫。它常被稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地整合在一起。常見的一種應用情境是,使用Python快速產生程式的原型(有時甚至是程式的最終介面),然後對其中有特別要求的部分,用更合適的程式設計語言改寫,比如3D遊戲中的圖形渲染模組,效能要求特別高,就可以用C/C++重寫,然後封裝為Python可以調用的擴充類庫。需要注意的是在您使用擴充類庫時可能需要考慮平台問題,某些庫可能不提供跨平台的實現。

  儘管Python原始碼檔案(.py)可以直接使用python命令執行,但實際上Python並不是直接解釋Python原始碼,而是先將Python原始碼編譯產生Python Byte Code(Python位元組碼,位元組碼檔案的副檔名一般是.pyc),然後再由Python Virtual Machine(Python虛擬機器,可以簡稱為PVM)來執行Python Byte Code。也就是說,這裡說Python是一種解釋型語言,指的是解釋Python Byte Code,而不是Python原始碼。這種機制的基本思想跟Java和.NET是一致的。

  儘管Python也有自己的虛擬機器,但Python的虛擬機器與Java或.NET的虛擬機器不同的是,Python的虛擬機器是一種更進階的虛擬機器。這裡的進階並不是通常意義上的進階,不是說Python的虛擬機器比Java或.NET的功能更強大,而是說與Java 或.NET相比,Python的虛擬機器距離真實機器的距離更遠。或者可以這麼說,Python的虛擬機器是一種抽象層次更高的虛擬機器。Python語言程式碼的編譯和運行過程如所示。

1.2 Python的應用領域

  Python是一種跨平台程式設計語言,理論上,Python可以運行在任何作業系統平台上。目前最常用的作業系統平台是Windows、Mac OS X和Linux。毫無疑問,這3個平台都會成為Python的主戰場。

  Python的簡單易學、眾多第三方程式庫,以及運行速度快等特性讓Python的應用領域異常廣泛。Python的應用領域主要有以下幾個方面。

  • Linux/Unix營運
  • 命令列程式開發
  • GUI程式開發(PyQt 、Kivy等)
  • Web程式開發(Django等架構)
  • 移動App開發(PyQt 、Kivy等)
  • 服務端程式開發(基於Socket等協議)
  • 網路爬蟲(為搜尋引擎、深度學習等領域提供資料來源)
  • 資料分析
  • 深度學習
  • 科學計算

      儘管這裡沒有列出Python的所有應用領域,但光這些列出的領域,就已經包含了絕大多數開發情境。用過Mac OS X或Linux的讀者會發現,在這兩個作業系統中,已經內建了Python解譯器,也就是說,Python程式可以在Mac OS X和Linux上直接運行。所以很多營運工程師習慣使用Python來完成很多自動化操作。而且Python在操作網路、文本方面尤為突出。Google搜尋引擎的第一個版本就是用Python寫的。現在超級火熱的深度學習也離不開Python,而且Python已經成為了深度學習的第一語言。因此,從各個角度來看,無論是學生、程式員,還是資料分析師,或是科學家,都離不開Python。Python儼然已經成為了程式設計語言領域的世界語。

    1.3 如何學好Python

      如何學好Python語言,是所有初學者需要共同面對的問題,其實每種程式設計語言的學習方法都大同小異。下面是給初學者的幾點建議。

  • 大體瞭解一下Python是一種怎樣的程式設計語言,以及主要的應用領域。說白了,就是要瞭解Python能做什麼,擅長做什麼。對Python語言有一個宏觀的認識。
  • 搭建開發環境,不管三七二十一,先弄出一個Hello World再說(可以複製現有的代碼)。這樣會給自己帶來繼續學習下去的信心。我們可以設想,學了一個星期,如何連一行代碼都寫不出來,繼續學下去的興趣還會剩多少呢?
  • 不要深究設計模式,這些東西是給那些有多年經驗的程式員準備的,而且設計模式也不是用來學的,更不是用來記的,是依靠自己的多年經驗和實踐得出來的。這就像學英語,只管說就好了,管他什麼文法,說多了,英語自然就純正了。所以在一開始寫程式時,只管寫就好了,讓設計模式見鬼去吧!
  • 模仿書中的例子代碼,一定要自己親手寫代碼,當然,一開始為了看運行結果,可以將書中的例子直接複製過來,但一定要完全自己寫一遍,代碼可以與書中的例子不同,只要實現同樣的功能即可。
  • 在編寫代碼的過程中,不需要對Python語言的文法死記硬背,如果某些文法實在記不住,就把這些文法寫在卡片上,或乾脆放到有道雲筆記上,以便隨時查看,寫多了自然就記住了。
  • 初學者不需要大量閱讀Python的書籍,也不需要在網上查閱過多的技術資料,因為在自己的功力還沒有達到一定火候時,攝入太多的資訊會分散自己的精力,可能會適得其反。用一句武林中的話說就是:走火入魔。因此,對於初學者來說, 應充分利用本書給出的代碼多做練習,當學會了本書給出的各種知識和技巧後,就可以隨心所欲地攝取任何自己想獲得的知識了。
  • 讀者應充分利用隨書贈送的Python視頻課程,這套視頻課程是與本書同步的。書與視頻的差別就是書只能給出一個結果,而視頻不僅可以給出結果,還可以詳細示範操作過程,這對於初學者尤其重要。
  • 在模仿書中例子編寫代碼的過程中,可能對有些代碼沒有理解透徹,這並不要緊,讀者應仔細閱讀本書的相關內容,以及利用隨書贈送的Python視頻課程反覆觀看,以便領悟其中的奧秘。如果實在領悟不了,也可以到極客起源IT問答社區(https://geekori.com )去提問,會有很多人回答你提出的問題。
  • 本書配有大量練習題,讀者可以通過這些練習題更好地掌握書和視頻中的知識點,而且這些練習題不是生硬地給出,而是通過“過關斬將”、“測能力”等形式給出(這些功能需要依託歐瑞科技旗下“極客題庫”小程式實現)。讀者可以通過這些功能以闖關的方式完成自己的學習任務,並對自己的知識點掌握情況了如指掌。
  • 經常總結是一個好習慣,這個習慣對於程式員來說尤其重要。讀者可以經常把自己的學習心得,以及經常需要查閱的內容發布到部落格(如https://geekori.com )上,這樣不僅可以提高自己的技術能力,還可以提高自己的語言表達能力。
  • 經常回答同行提出的技術問題也是一種提高技術能力的方式,而且更有效。如果你沒有能力回答任何技術問題,或只能回答不到10%的技術問題,那麼你還是個小白。如果能回答超過30%的技術問題,那麼說明你已經至少達到了程式員的中級水平,如果這個比例是50%,那麼恭喜,你已經成為該領域的高手了。如果提高到80%,會毫無懸念地成為該領域的專家。另外,歐瑞科技旗下的極客起源IT問答社區(https://geekori.com )包含了李寧老師大量學員和讀者提出的各種問題,各位讀者也可以試試自己到底屬於哪個層次。另外,在https://geekori.com 中提問、回答問題以及撰寫部落格,都會獲得可觀的積分,可以換取更多的學習資源。
  • 大量閱讀原始碼。如果前面的方法讀者做的都很好,那麼相信讀者的技術水平已經有了一個質的飛躍,剩下來的工作就是更進一步地提高自己的技術能力。閱讀各種開源項目的原始碼是一個非常好的方式。另外,要注意,閱讀原始碼不是目的,目的是要理解這些原始碼背後的原理,當然,最終的目的是自己可以實現一個類似的功能。讀者可以到https://github.com 擷取各種類型的Python原始碼。
2 搭建Python開發環境2.1 安裝官方的Python運行環境

  不管用什麼工具開發Python程式,都必須安裝Python的運行環境。由於Python是跨平台的,所以在安裝之前,先要確定在哪一個作業系統平台上安裝,目前最常用的是Windows、Mac OS X和Linux三大平台。由於目前使用Windows的人數最多,所以本書主要以Windows為主介紹Python運行環境的搭建與程式的開發。

  讀者可以直接到Python的官網下載相應作業系統平台的Python安裝包。

https://www.python.org/downloads

  進入下載頁面,瀏覽器會根據不同的作業系統顯示不同的Python安裝包下載連結。如果讀者使用的是Windows平台,會顯示如所示的Python下載頁面。

  如果讀者使用的是Mac OS X平台,會顯示如所示的Python下載頁面。

  不管是哪個作業系統平台的下載頁面,都會出現“Download Python 3.6.2”和“Download Python 2.7.13”兩個按鈕(隨著時間的推移,可能版本號碼略有不同)。由於本書使用Python 3講解,所以點擊“Download Python3.6.2”按鈕即可。如果是Windows平台,下載的是exe安裝程式,如果是Mac OS X平台,下載的是pkg檔案,這是Mac OS X上的安裝程式,直接安裝即可。

  現在主要來說說在Windows平台如何安裝Python運行環境。首先運行下載的exe檔案,會顯示如所示的Python安裝介面。建議讀者選中介面下方的“Add Python 3.6 to PATH”複選框,這樣安裝程式就會自動將Python的路徑加到PATH環境變數中。

  在該介面中出現兩個安裝選項,“Install Now”和“Customize installation”,一般點擊“Install Now”即可,點擊該選項後,會開始安裝Python,是顯示安裝進度的介面,讀者只需要耐心等待Python安裝完即可。

  安裝完後,會出現所示的安裝成功介面。

2.2 配置PATH環境變數

  在安裝完Python運行環境後,我們可以測試一下Python運行環境,不過如果在安裝Python的過程中忘記了選中“Add Python 3.6 to PATH”複選框,那麼預設情況下,Python安裝程式是不會將Python安裝目錄添加到PATH環境變數的。這樣一來,我們就無法在Windows命令列工具中的任何目錄執行python命令了,必須進入Python的安裝目錄才可以使用python命令。

  為了更方便地執行python命令,建議將Python安裝目錄添加到PATH環境變數中。在Windows平台配置PATH環境變數的步驟如下:

  1. 回到Windows的案頭,滑鼠右鍵“電腦”,在快顯功能表中單擊 “屬性”功能表項目,會顯示如所示的“系統”視窗。

  點擊“系統”視窗左側的“進階系統設定”,會彈出如所示的“系統屬性”視窗。

  點擊“系統屬性”視窗下方的“環境變數(N)...”按鈕,會彈出如所示的“環境變數”視窗。

  在“環境變數”視窗有兩個列表,上面的列表是為Windows當前登入使用者佈建環境變數,在這裡設定的環境變數只對當前登入使用者有效。下面的列表是對所有使用者佈建的環境變數,也就是說這些變數對所有的使用者都有效。讀者在哪裡設定PATH環境變數都可以,本書在上面的列表中設定了PATH環境變數。如果在列表中沒有PATH環境變數,點擊“建立(N)...”按鈕添加一個新的PATH環境變數。如果已經有了PATH環境變數,雙擊PATH,就會彈出“編輯使用者變數”對話方塊。

  讀者需要在“變數值(V)”文字框中添加Python的安裝目錄,多個路徑之間要用分號(;)分隔。那麼我們怎麼找到Python的安裝路徑呢?實際上,在Python安裝介面的“Install Now”按鈕下方就是Python的預設安裝路徑,這個路徑可以修改,不過一般保持預設設定即可。如果仍然使用Python的預設安裝路徑,那麼需要在PATH環境變數的最後添加如下的路徑。

C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32

  我們可以進入該路徑,就會看到如所示的目錄內容。很顯然,我們要使用的就是目錄中的python.exe檔案。

  現在開啟Windows命令列工具,執行python --version命令,如果輸出Python 3.6.2,說明Python安裝成功了。

2.3 安裝Anaconda Python開發環境

  開發一個完整的Python應用,光使用Python本身提供的模組是遠遠不夠的,因此,需要使用大量第三方的模組。在發布Python應用時安裝這些第三方模組是一件令人頭痛的事,不過有了Anaconda,讓這件事輕鬆不少。Anaconda是一個整合的Python運行環境。除了包含Python本身的運行環境外,還整合了很多第三方模組,如本書後面要將的numpy、pandas、flask等模組都整合在了Anaconda中,也就是說,只要安裝了Anaconda,這些模組都不需要安裝了。
  Anaconda的安裝相當簡單,首先進入Anaconda的下載頁面,地址如下:
https://www.anaconda.com/download

  Anaconda的下載頁面也會根據使用者當前使用的作業系統自動切換到相應的Anaconda安裝包。Anaconda是跨平台的,支援Windows、Mac OS X和Linux。不管是哪個作業系統平台的安裝包,下載直接安裝即可。

  Anaconda的安裝包分為Python3.x和Python2.x兩個版本,由於目前Python3.x最新版是Python3.6,而Python2.x最新版是Python2.7,所以習慣上稱這兩個版本為Python3.6版和Python2.7版,由於本書使用的是Python3.6,所以建議讀者下載Python3.6版的Anaconda。下載介面如所示。下載完後,直接安裝即可,如果安裝完後,如果未設定Python的PATH環境變數,可以按上一節的方式進行設定。

2.4 安裝PyCharm

  PyCharm是一個專門用於開發Python程式的IDE,由JetBrains公司開發,這個公司開發出了很多非常流行的IDE,例如,WebStorm、Intellj IDEA等,其中Android Studio(開發Android App的IDE)就是基於Intellj IDEA社區版開發的。

  PyCharm有兩個版本:社區版和專業版。社區版是免費的,但功能有限,不過使用PyCharm編寫本書的案例足夠了。

  讀者可以到下面的PyCharm官網下載PyCharm的安裝檔案。

https://www.jetbrains.com/pycharm

  儘管PyCharm下載頁面後,將頁面垂直捲軸滑動到中下部,會看到如所示的PyCharm專業版和社區版的下載按鈕。

  PyCharm下載頁面會根據使用者當前使用的作業系統自動切換到相應的安裝檔案,Windows是exe檔案,Mac OS X是dmg檔案,Linux是tar.gz檔案。讀者只需要點擊右側的“DOWNLOAD”按鈕即可下載相應作業系統平台的安裝程式。

  下載完PyCharm後即可運行PyCharm,第1次運行PyCharm,會顯示如所示的歡迎介面。點擊“Create New Project”按鈕即可建立Python工程。

2.5 配置PyCharm

  現在點擊PyCharm歡迎介面的“Create New Project”按鈕會顯示“New Project”視窗,這個視窗是用來建立Python工程的。在“Location“文字框中輸入Python工程的名字,如果讀者要選擇不同的Python運行環境,可以點擊“Project Interpreter”,會在“New Project”視窗下方顯示如所示的Python運行環境選擇介面。

  如果讀者已經配置好了PyCharm中的Python運行環境,從“Interpreter”列表中選擇一個Python運行環境即可。如果讀者還沒有對PyCharm進行配置,需要點擊“Interpreter”列表框右側的按鈕,然後在快顯功能表中點擊“Add Local…”功能表項目,會彈出如所示的“Add Local Python Interpreter”視窗。

  選擇左側列表中的“Virtualenv Environment”,點擊右側“Interpreter”列表框右側的省略符號按鈕,會彈出一個“Select Python Interpreter”視窗,如所示。在該視窗中選擇Anaconda或其他Python解譯器,然後點擊“OK”按鈕關閉該視窗。

  接下來回到“New Project”視窗,在“Interpreter”列表中選擇剛才指定的Python運行環境,最後點擊“Create”按鈕建立Python工程。一個空的Python工程如所示。

  Python原始碼檔案可以放在Python工程的任何位置,通常會將Python原始碼檔案放在src目錄中,然後選擇src目錄,在右鍵菜單中點擊“New”>“Python File”功能表項目建立一個Python檔案(這裡是Test.py),如所示。

  第一次運行Python程式可以選擇Test.py檔案,然後在右鍵菜單中選擇“Run ‘Test’”功能表項目會運行Test.py指令檔,以後再運行,可以直接點擊MyCharm主介面右上方的綠色箭頭按鈕。現在為Test.py檔案輸入一行簡單的代碼,如print(‘hello world ‘),然後運行Test.py指令檔,會得到如所示的輸出結果。如果讀者按前面的步驟進行,並得到這個輸出結果,就說明PyCharm已經安裝成功了。

### 2.6 Python中的REPL環境

Python有如下3種運行方式。

  • 直接通過python命令運行
  • 在Python IDE中運行
  • 在Python的REPL環境中運行

      本節將介紹如何在REPL環境中運行Python程式,這裡的REPL是Read-Eval-Print Loop的縮寫,是一個簡單的互動式編程環境,也可以將Python REPL環境稱為Python控制台。為了統一,本書後面的章節都稱Python REPL為Python控制台。

      讀者只需要在Windows命令列工具中執行python命令,即可進入REPL環境。在命令提示字元(>>>)後輸入print("hello world"),按斷行符號鍵,就會在REPL環境中輸出“hello world”,如所示。

      如果在Windows下,按Ctrl+Z退出REPL環境,如果在Mac OS X,按Ctrl+D退出REPL環境。

1.3 第一個Python程式

  本節會編寫我們的第一個Python程式。這個程式定義了兩個整數類型的變數n和m,並將兩個變數相加,最後調用print函數輸出這兩個變數的和。

(1)讀者可以使用任何一個文字編輯器、Eclipse或PyCharm建立demo.py檔案,並輸入下面的Python代碼。

n = 20m = 30print("n + m =",n + m)

  建議讀者使用Eclipse或PyCharm來建立demo.dy檔案,因為這樣做可以直接在IDE中執行Python程式,並不需要像命令列方式運行Python程式那樣在文字編輯器和Window命令列工具之間來回切換。

(2)運行Python程式

  如果讀者想在Windows命令列工具中運行demo1.py,可以在命令列工具中進入demo1.py所在的目錄,然後執行下面的命令運行demo1.py。

python demo1.py

在命令列工具中運行demo1.py的輸出結果如所示。

1.4 調試Python程式

  在開發複雜的Python程式時,如果出現bug(也就是程式中出現的錯誤),就需要對程式進行調試,以便找出bug對應的程式碼。偵錯工具的方法很多,例如,可以使用print函數在程式的不同位置輸出相應的資訊,以便縮小bug出現的範圍。不過這種方法太原始了,現在普遍使用的方法是通過調試器一步步跟蹤程式碼,這種方式可以非常方便地找到bug所在的位置。

  由於PyDev是Eclipse外掛程式,所以調試Python程式可以使用與調試Java類似的方式(PyCharm的調試方法類似)。Eclipse提供了調試介面,後台調用了各種程式設計語言的調試器。在調試Python代碼時會調用Python的調試器。

  用Python調試器調試Python代碼的步驟如下:

(1)設定斷點

  設定斷點是偵錯工具的過程中必不可少的一步。Python調試器每次遇到斷點時會將當前線程掛起,也就是暫停當前程式的運行。

  可以在Python編輯器中顯示程式碼號的位置雙擊添加或刪除當前行的斷點,或者在當前行號的位置滑鼠右鍵單擊,會顯示如所示的快顯功能表。在菜單中單擊“Add Breakpoint”功能表項目,會在當前程式碼添加斷點。也可以單擊“Disable Breakpoint”功能表項目,禁用當前行的斷點。如果當前行已經有斷點了,菜單中會出現“Remove Breakpoint”功能表項目,單擊該功能表項目,會刪除當前行的斷點。

添加斷點後的Python編輯器如所示。其中第2行設定了一個斷點。

(2)以調試方式運行Python程式

  在Eclipse中運行分為兩種方式:Release和Debug,也就是發行和調試。如果只是觀察程式的執行效果,可以選擇Release方式,如果要偵錯工具,就需要使用Debug方式。

  Debug按鈕在Eclipse工具列左側,1-54所示(有一個小爬蟲的按鈕,在Release按鈕的左側)。

  現在點擊Debug按鈕,就會運行Python程式,如果Python程式沒有設定任何斷點,Debug和Release方式啟動並執行效果是一樣的,都會輸出運行結果。不過用Debug方式運行程式,Eclipse會進入Debug透視圖(Perspective),這裡的透視圖就是Eclipse中將多個相關視圖以一定位置和尺寸放到一起,便於開展工作。Debug透視圖則是將與調試相關的視圖放到一起,便於調試。

  如果Python程式中有斷點,當程式執行到斷點處,就會暫停程式,並且在斷點行用綠色背景展示,如所示。

(3)觀察調試資訊

  調試的主要目的是將程式中的資料展現出來,也就是說,調試調的就是程式中的資料。因此,通過Python調試器,可以用多種方式觀察Python程式中資料的變化。例如,由於n = 20在m = 30前面,所以在m = 30處中斷後,n = 20肯定是已經執行了,所以可以將滑鼠放到n = 20語句上,這時會在快顯視窗中顯示變數n的資料類型和當前的值,如所示。

  在右上方的Variables視圖中也可以觀察變數值的變化情況,如所示。

(4)跟蹤偵錯工具

  調試的另一個重要功能是可以一步步跟蹤程式,也就是step into(單獨跳入)和step over(單步跳過)。其中step into可以跟蹤進函數內部,step over並不會跟蹤進函數內部。這兩個功能可以通過點擊左上側的兩個按鈕實現,如所示。

  現在點擊“step over”按鈕,會發現Python代碼地區m = 30程式碼執行了,並且綠色背景跑到下一行了,如所示。

1.5 實戰與練習
  1. 嘗試修改1.3節的例子,使程式輸出n * m的值。

  2. 嘗試編寫Python程式,分別用“*、+、-、/”四個在四則運算子將兩行字串包圍起來,並Eclipse的Console視圖中輸出如所示的結果。

初識Python

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.