Python(1):入門

檳城碼農發表於2016-07-26

安裝:  

  在linux中一般都自帶有python2.7的版本,如果想升級python到最新的版本可以參考其他部落格(http://www.cnblogs.com/lanxuezaipiao/archive/2012/10/21/2732864.html)。

這裡需要注意的是如果沒有升級python到最新版本,那麼直接在終端輸入 python 開啟的將是自帶的2.7版本。下載了新版本的python(假設為3.5)之後,會發現直接輸入python命令會報錯誤。

此時有兩個選擇,一個是使用python3命令來開啟python控制檯;一個是修改python的預設指向:

sudo rm -f /usr/bin/python

sudo ln -s /usr/bin/python3.5 /usr/bin/python

這樣設定了之後,就可以直接使用python命令來開啟python控制檯了。但此時可能還會出現問題,比如ubuntu下,會發現所有apt-get install相關的命令都失敗,檢視原因會發現有python相關的編譯錯誤。網上找了好多辦法都沒解決,最終採用的是先將python命令連結還原到老版本的python,執行完apt-get install命令之後,在將連結改回來即可。至於還原到老版本的python命令這裡就不再給出,只需把第二行命令中的python3.5改成老版本的即可。

 

python指令碼的編寫:

  python指令碼的編寫大致上來說和java的程式碼編寫沒有太大差別。唯一的差別可能有以下兩點需要注意:

1. 在python中可以省略語句末尾的分號;

2. 在python中程式碼使用分層機制,子層相對於父層必須進行縮排(四個空格),且開啟子層之前父層必須以冒號(:)結尾。大致看下來python的程式碼如下:

def print_list(movies):
    if isinstance(movies, list):
        for movie in movies:
            print_list(movie)
    else:
        print(movies)

demo

 

python註釋: 

  python中的單行註釋直接使用”#”即可,對於多行註釋使用三引號:

  ””” 這是一個多行註釋

    丫

  ”””

 

列表:

  在python中可以說是一切皆列表。列表可以看做是java中的陣列,但又不像是陣列。列表中可以混合儲存多種資料型別的元素,且長度不固定,但是如果訪問列表元素的時候出現越界也會丟擲異常(IndexError)。列表的常見操作如下:

 1 movies = ["movie1", "movie2"]
 2  # 列表中可以巢狀列表,這裡執行完後,列表中的第一個元素就是一個列表
 3 movies.insert(0, ["movie00", "movie01"])
 4 movies.remove("movie1")        # 刪除列表元素
 5 
 6 # 列表迴圈
 7 for movie in movies:
 8     print(movie)
 9 
10 i = 0
11 while i < len(movies):            # len方法得到陣列長度
12     print(movies[i])
13     i = i + 1                                  # python不支援例如 i++這種自加的操作

ListOperation

  另外往列表末尾新增元素的函式主要有extend和append下面程式碼給出幾個列子,可以很直觀的看出二者的區別:

1 movies = []
2 movies.append("movie1")
3 print(movies)       # [`movie1`]
4 movies.extend(`movie2`)
5 print(movies)     # [`movie1`, `m`, `o`, `v`, `i`, `e`,`2`]
6 movies.append([`movie3`])
7 print(movies)    #  [`movie1`, `m`, `o`, `v`, `i`, `e`,`2`, [`movie3`]]
8 movies.extend([`movie4`])
9 print(movies)    # [`movie1`, `m`, `o`, `v`, `i`, `e`,`2`, [`movie3`], `movie4`]

AppendExtend

  python中的字串既可以用單引號,也可以用雙引號,對於特殊字元,仍然使用””進行轉義。變數名區分大小。

  上面我們看到諸如len、print等這些都屬於python的內建函式(BIF:built in functions)。我們可以通過dir(__builtins__)來檢視所有的內建函式。要檢視內建函式具體說明使用help(內建函式名)即可。

  假設我們要將上一段程式碼中的列表元素列印出來,且對於巢狀的列表也需要單獨列印出其元素。那麼我們可能需要用到函式。判斷一個元素是否是列表型別,可以用內建函式isinstantce。

例如:isinstantce(movie, list) 來判斷movie是否是列表。我們定義一個列印列表的函式如下:

1 def print_list(movies):
2     if isinstance(movies, list):      # 判斷元素是否是列表型別
3         for movie in movies:
4             print_list(movie)       # 如果是列表型別,對元素遞迴呼叫列印列表   
5     else:
6         print(movies)
7     

print_list

定義完函式之後,我們可以直接通過 print_list(movies)來輸出列表。

黎明前最黑暗,成功前最絕望!


相關文章