05.25 python入門3

元組:

python元組和字符串類似,不能修改元組對象本身,元組用小括號()表示,元組中只有一個元素的時候需要在後面加逗號‘,’。

元組可以進行連接和重複操作:

1.連接——'+'連接2個元組形成一個新的元組

2.重複——'*'重複一個元組加在末尾

3.刪除——元組不能刪除其中的元素,但是元組可以整個刪除,del tup

4.元組索引和截取——與字符串類似tup[index]/tup[1:3]

5.len(tup)——返回元組的長度

6.max(tup)——返回元組最大值

7.min(tup)——返回元組最小值

8.tuple(seq)——將列表轉換為元組

python入門3

字典:

字典是另一種可變容器模型,且可存儲任意類型對象。(字典是由鍵和對應值成對組成,字典也被稱為關聯數組和哈希表。)

鍵必須是唯一的,但值則不必。值可以去任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

字典的特性:字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。

刪除字典能刪單一的元素也能清空字典,顯示刪除一個字典用del命令。

修改字典:向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵。(重新賦值)

字典內置函數&方法:

內置函數:

1、cmp(dict1, dict2):比較兩個字典元素。

2、len(dict):計算字典元素個數,即鍵的總數。

3、str(dict):輸出字典可打印的字符串表示。

4、type(variable):返回輸入的變量類型,如果變量是字典就返回字典類型。

內置方法:

1、radiansdict.clear():刪除字典內所有元素

2、radiansdict.copy():返回一個字典的淺複製

3、radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值

4、radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值

5、radiansdict.has_key(key):如果鍵在字典dict裡返回true,否則返回false

6、radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組

7、radiansdict.keys():以列表返回一個字典所有的鍵

8、radiansdict.setdefault(key, default=None):

和get()類似, 但如果鍵不已經存在於字典中,將會添加鍵並將值設為default

9、radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict裡

10、radiansdict.values():以列表返回字典中的所有值

python入門3

函數:

函數能提高應用的模塊性,和代碼的重複利用率.你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數

函數的基本規則:

函數代碼塊以def關鍵字開頭,後接函數標識符和圓括號()。

任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。

函數的第一行語句可以選擇性的使用文檔字符串(用於存放函數說明)

函數內容以冒號起始,並且縮進。

returm[表達式]結束函數,選擇性的返回一個值給調用方。不帶表達式的return相當於返回None。

定義函數:def 函數名 (參數列表)

函數體

可更改(mutable)與不可更改(immuteble)對象:

不可變類型:變量賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值對象 10,再讓 a 指向它,

而 5 被丟棄,不是改變a的值,相當於新生成了a。(類似 c++ 的值傳遞,如 整數、字符串、元組。如fun(a),

傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,

不會影響 a 本身。)

可變類型:變量賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,

只是其內部的一部分值被修改了。(類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),

則是將 la 真正的傳過去,修改後fun外部的la也會受影響)

參數:

必需參數:

必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。調用printme()函數,

你必須傳入一個參數,不然會出現語法錯誤

關鍵字參數:

關鍵字參數和函數調用關係緊密,函數調用使用關鍵字參數來確定傳入的參數值。

默認參數:

調用函數時,如果沒有傳遞參數,則會使用默認參數。

不定長參數:

你可能需要一個函數能處理比當初聲明時更多的參數。

這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。

匿名函數:

python 使用 lambda 來創建匿名函數。

所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。

lambda 只是一個表達式,函數體比 def 簡單很多。

lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間裡的參數。

雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,

後者的目的是調用小函數時不佔用棧內存從而增加運行效率。

eturn [表達式] 語句用於退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。

變量作用域:Python 中,程序的變量並不是在哪個位置都可以訪問的,訪問權限決定於這個變量是在哪裡賦值的。

python入門3

變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。

Python的作用域一共有4種:

L (Local) 局部作用域

E (Enclosing) 閉包函數外的函數中

G (Global) 全局作用域

B (Built-in) 內建作用域

以 L –> E –> G –>B 的規則查找,即:在局部找不到,便會去局部外的局部找(例如閉包),

再找不到就會去全局找,再者去內建中找。

全局變量和局部變量:

定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。

局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序範圍內訪問。

調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。

global 和 nonlocal關鍵字:

當內部作用域想修改外部作用域的變量時,就要用到global和nonlocal關鍵字了。


分享到:


相關文章: