【Python】學習筆記

Python是一種多用途的語言,能夠定義爲面向對象的腳本語言。與其餘的面向對象的語言相比,Python的可讀性很好,格式簡單明瞭,代碼移植性強,有強大的標準庫支撐(Numpy,nltk……數學功能極其強大)而且能夠用來集成各類編程語言書寫的代碼。因此愈來愈多的人選擇了Python。java

 

Python安裝python

windows下面能夠去python的官網下載,安裝後修改環境變量就可使用了。數據庫

Ubuntu能夠用下面的命令:編程

sudo apt-get install python

自動安裝的是Python2.7版本的,Python3和Python2區別略大,我兩個都裝了,能夠用pip+virtualenv來進行python的版本區分。具體能夠參見:windows

Python的IDE是IDLE,如今最高好像只有Python2.7版本的。IDE做用不大,就是給個界面。若是習慣了使用IDE的童鞋能夠安裝試試。app

 

Python運行編程語言

Python安裝到機器上後,包含的是一些最小化的組件:一個解釋器和支持的庫。解釋器是可以執行用其餘計算機語言編寫的程序的系統軟件,屬於一種翻譯程序。Python解釋器先讀取程序,並按照其中的命令執行,得出結果。學習

一個Python程序運行步驟以下:this

源代碼(**.py)   =>   字節碼(**.pyc)  =>   PVM

首先是你寫的源碼,通常是以.py做爲文件類型,而後根據在Python內部將這些源代碼逐條翻譯成字節碼的指令。使用字節碼能夠節省運行的時間開銷。你在你運行過的python文件的同級目錄下能夠看到這些.pyc的字節碼文件。字節碼以後被髮送到Python虛擬機(Python Virtual Machine, PVM)上執行。spa

P.S. Python的字節碼是Python本身的定義,而非彙編指令之類的。

下面是有關Python運行的一些總結

1. 搜索路徑

在Python中搜索路徑有點像C++的項目路徑的感受,Python中的sys.path即是搜索的總的路徑集,你須要用到的文件都應該在這個路徑裏能夠找到。

-- 添加默認搜索路徑:能夠暫時加入路徑也能夠永久加入。

    暫時加入路徑能夠在每次代碼上添加:

import sys
sys.path.append(’D:/WorkSpaces/Python/Test’)

    永久加入有兩種方法,

    方法一:將這個路徑添加到site-packages這個文件夾下面,在個人Python裏是在lib下面的。

    在site-package這個文件夾裏新建一個.pth的文件,文件裏寫你須要永久添加的路徑。這種方法很差的地方在於若是有幾個版本的Python就不能夠通用了。

# .pth file for test this method
D:\WorkSpaces\Python\Test 

    方法二:在環境變量中添加PYTHONPATH,若是尚未這個變量能夠新建一個,而後填上你須要加入的路徑便可。

--  包導入

    一個工程中每每一個文件夾下有多個子文件夾,若是要將全部的子文件夾都加入未免太麻煩了。在Python中提供了一種模擬Java中包的概念的方法。在Python中稱爲包導入。

    包導入語句的路徑內的每一個目錄都必須有__init__.py這樣一個文件,不然導入包會失敗。__init__.py文件裏未必須要內容能夠直接爲空,固然你也能夠寫一些東西。當Python首次導入某個目錄時會自動執行該目錄下的__init__.py文件中的全部程序代碼,你可使用該文件建立你所須要的數據文件,作數據庫的鏈接等初始化的步驟。

    在對一個目錄進行包導入後,你就能夠用相似java中包的方法來使用包中的文件,如

import dir1.dir2.Test.py

2. 運行程序

運行程序能夠直接使用python的命令,固然你須要將Python的路徑添加到:

python Test.py

 

 

Python語法粗概

看的是Mark Lutz的Python學習手冊,不少細節,粗粗的歸納一下幾個與傳統的面嚮對象語言差異比較大的地方。

1.  縮進: 在C++或者Java中,縮進、空格多幾個都是無所謂的,只要本身看着舒服,縮幾個都行。可是在Python中爲了讓代碼一眼看上去的是怎麼樣就是怎麼樣,避免讀代碼時候的錯誤,縮進就表明着代碼塊的範圍而不須要括號來進行劃分,使得代碼變得更加的簡潔且一目瞭然。譬以下面註明的if例子:

if(x)
    if(y)
         statement1;
else
    statement2;

在Java裏這個else確定是和內層的if(y)配套的,而在Python裏適合外層的if(x)相配套的。這樣是否更加的直觀清晰?我的比較喜歡Python這個設計。

相關文章
相關標籤/搜索