Python——列表和函數

來源:互聯網
上載者:User

之前接觸過一點python,好久沒看了,最近想重新學習一下,同時記錄一下自己的學習過程,溫故而知新。 初識Python

python是一門解釋性程式設計語言,源檔案是以*.py 結尾的文字檔,由Python解譯器(interpreter)解釋、執行,不需要編譯(對使用者來說)。

實際上,python解譯器在執行指令碼前,會先將指令碼編譯成位元組碼檔案(以*.pyc結尾),然後再執行。

我們也可以通過Python內建的模組庫(py_compile),手動實現這個過程,編寫指令碼如下:

import py_compilepy_compile.compile(r'D:\workspace\test.py')#檔案名稱前面的r表示:該字串不進行轉義

自己在學習過程中,文法上需要注意的點,大致羅列一下:
(1) 沒有嵌套的語句都在第一列。
(2) 在互動模式下,互動解譯器會自動列印運算式的結果,但是在 *.py 指令檔中則必須使用print語句來進行輸出。
(3) 在互動提示模式中,用一個空行結束複合陳述式。通過插入一個空行,來告訴互動式Python,多行語句已經輸入完成了。(在 *.py 檔案中不需要空行,空行會被忽略)
(4) 在命令列中執行指令檔時需要使用檔案的副檔名(*.py),但是在匯入模組時不能使用副檔名。
(5) 在linux中,第一行通常是 #。/usr/bin/python,用來指定Python解譯器的路徑。更好的一種方法是通過 env 程式來搜尋PATH環境變數中羅列出的所有目錄,第一行寫成 #。/usr/bin/env,這樣便於移植。
(6) 通過在 *.py 檔案的最後添加 input語句,可以使得雙擊運行該指令碼時,出現的命令提示字元視窗不會“一閃而過”(程式執行完成後自動結束)。

參考Head First Python第一章的執行個體,列表和函數的使用

- 列表(list)
列表的用法同C語言中的數組很相似,列表的功能更強大。
列表沒有固定的大小和類型的約束,同一個列表可以包含不同類型的資料,可以對列表進行索引、切片、增加元素、刪除元素、排序等操作。

列表的定義:

movies = ["The Holy Grail", "The Life of Brain", "The Meaning of Life"]

執行個體,逐行輸出資料行表中的每項:

movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91,             ["Graham Chapman", ["Michael Palin", "John Cleese",                    "Terry Gilliam", "Eric Idle", "Terry Jones"]]]print moviesfor each_item in movies:    if isinstance(each_item, list):        for each_item_inner in each_item:            if isinstance(each_item_inner, list):                for each_item_inner_deeper in each_item_inner:                    print each_item_inner_deeper            else:                        print each_item_inner    else:        print each_item

- 函數(function)
函數的定義:

def function_name([arguments]):    '''optional documentation string'''    function_suite

由於列表中嵌套有子列表,如果嵌套層數過多,上面的代碼結構會變的很複雜和冗餘。
我們定義一個函數,將重複的代碼用函數替代,並且通過遞迴調用,解決上面可能出現的嵌套過深的問題。

定義一個函數,遞迴調用,逐行輸出資料行表中的每一項:

def print_lol(the_list):    for each_item in the_list:        if isinstance(each_item, list):            print_lol(each_item)        else:            print each_item

通過調用print_lol()函數就可以實現逐行輸出資料行表內容了。

上面的代碼涉及到了以下內容:
- for * in * 迭代,遍曆列表的用法(類似於java中的foreach用法);
- isinstance(,)判斷某個特定標識符是否包含某個特定類型的資料;
- if else的文法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.