標籤:python
一、字典類型
*)字典是python中唯一的映射類型 ,key-value(雜湊表),字典對象是可變的,但key必須用不可變對象。
*)字典的建立和字典值得訪問
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/9B/A9/wKioL1llwSjj7WI4AAB0-Eq1-Oo875.png" title="Screenshot from 2017-07-12 08-50-40.png" alt="wKioL1llwSjj7WI4AAB0-Eq1-Oo875.png" />
##字典的內容在查看時不能通過索引來進行查看
*)內建方法:fromkeys
字典中的key有相同的value值,預設為None
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/9B/AA/wKiom1llwcqCzz9pAAAx6wT3QW8246.png" style="float:none;" title="Screenshot from 2017-07-12 08-55-32.png" alt="wKiom1llwcqCzz9pAAAx6wT3QW8246.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/9B/A9/wKioL1llwcvxsryxAAAuxcRwfaI586.png" style="float:none;" title="Screenshot from 2017-07-12 08-55-39.png" alt="wKioL1llwcvxsryxAAAuxcRwfaI586.png" />
*)字典的迴圈遍曆訪問
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9B/AA/wKiom1llwhDB8uVfAAA2cgepp3M431.png" title="Screenshot from 2017-07-12 08-56-44.png" alt="wKiom1llwhDB8uVfAAA2cgepp3M431.png" />
*)字典中key-value的添加
dic[key] = value
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9B/AA/wKiom1llwkWiRvkXAABFDHohvk0174.png" title="Screenshot from 2017-07-12 08-57-28.png" alt="wKiom1llwkWiRvkXAABFDHohvk0174.png" />
##通過字典的添加發現,字典是無序的資料類型
*)字典的刪除
**)根據key值刪除字典的元素
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/A9/wKioL1llwqHifkDKAABLZhyTM64432.png" title="Screenshot from 2017-07-12 08-58-23.png" alt="wKioL1llwqHifkDKAABLZhyTM64432.png" />
**)隨機刪除字典元素,返回(key,value)
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/AA/wKiom1llws2xemhxAABKUQmfUnU152.png" title="Screenshot from 2017-07-12 08-58-44.png" alt="wKiom1llws2xemhxAABKUQmfUnU152.png" />
**)刪除字典中的所有元素
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9B/AA/wKiom1llwu3i2lzMAAA10ZuyqyQ498.png" title="Screenshot from 2017-07-12 08-59-02.png" alt="wKiom1llwu3i2lzMAAA10ZuyqyQ498.png" />
**)刪除字典本身
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/9B/A9/wKioL1llwwjg7EBKAABX4ziwHas089.png" title="Screenshot from 2017-07-12 08-59-08.png" alt="wKioL1llwwjg7EBKAABX4ziwHas089.png" />
*)字典的常用方法
**)dic.get()
如果key存在於字典中,返回對應的value值
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/9B/A9/wKioL1llw1DjnGTvAAAwk_SUQb4202.png" title="Screenshot from 2017-07-12 09-01-12.png" alt="wKioL1llw1DjnGTvAAAwk_SUQb4202.png" />
**)dic.keys()
返回字典中的所有key值
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/9B/AA/wKiom1llw3Tw2pcvAAAxwwZ3w4U196.png" title="Screenshot from 2017-07-12 09-01-58.png" alt="wKiom1llw3Tw2pcvAAAxwwZ3w4U196.png" />
**)字典內容的更新
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/9B/A9/wKioL1llw5jSi1u7AABYBCUzDf0362.png" title="Screenshot from 2017-07-12 09-04-05.png" alt="wKioL1llw5jSi1u7AABYBCUzDf0362.png" />
**)檢查字典中是否存在某個key值
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/9B/AA/wKiom1llw7uDVziyAABKywjkmOk684.png" title="Screenshot from 2017-07-12 09-05-24.png" alt="wKiom1llw7uDVziyAABKywjkmOk684.png" />
二、函數
*)定義函數
**)def關鍵字,依次寫出函數名、括弧、括弧中的參數和冒號:
**)在縮排塊中編寫函數體,函數的傳回值用return語句返回。
def fun():
pass
return
*)調用函數
python內建了很多有用的函數,我們可以直接調用:
**)sum() ##求和內建函數
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/9B/AA/wKioL1llxemw0qIaAAAgiO0QV6I840.png" title="Screenshot from 2017-07-12 09-07-32.png" alt="wKioL1llxemw0qIaAAAgiO0QV6I840.png" />
**)abs() ##求絕對值
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/AA/wKioL1llxg2AWfdEAAAT3-Y8vMw312.png" title="Screenshot from 2017-07-12 09-11-09.png" alt="wKioL1llxg2AWfdEAAAT3-Y8vMw312.png" />
**)cmp() ##比較函數
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/9B/AA/wKioL1llxjajcL-AAAAlgOkamHA242.png" title="Screenshot from 2017-07-12 09-12-24.png" alt="wKioL1llxjajcL-AAAAlgOkamHA242.png" />
*)函數類型轉換
int(obj) ##將字串轉為整型
float(obj) ##轉化為浮點型
str(obj) ##轉化為字串型 *)什麼是函數名
**)函數名與變數名類似,其實就是指向一個函數對象的引用;
**)給這個函數起了一個 “別名”:函數名賦給一個變數
*)空函數
定義一個什麼也不做的空函數,可以用pass語句;
pass可以用來作預留位置,還沒想好怎麼寫函數的代碼,就可以先放一個pass,整個代碼先運行起來
def fun()
pass
*)參數檢查
**)調用函數時,如果參數個數不對,python解譯器會自動檢查出來,並超出TypeError;
**)如果參數類型不對,python解譯器就無法幫我們檢查。
**)資料類型檢查可以用內建函數isinstance實現
*)函數傳回值
**)函數傳回值用return關鍵字;
**)返回一個tuple可以省略括弧;
**)python的函數返回多值其實就是返回一個tuple
**)函數執行完畢沒有return語句時,自動return None
*)函數參數
**)有多個參數時,變化大的放前面,變化小的放後面;
必選參數在前,預設參數在後
*)可變參數
可變參數就是傳入的參數個數是可變的,可以是1個,2個到任意個,也可以是0個
*args
*)關鍵字參數
**)關鍵字參數允許傳入0個或任意個含參數名的參數;
**)這些關鍵字參數在函數內部自動組裝為一個dict;
**)關鍵字參數**kwargs
三、函數的進階特性
*)迭代
可以通過for迴圈來遍曆這個list或tuple,這種遍曆我們稱之為迭代(iteration)
只要是可迭代對象,無論有無下標,都可以迭代,比如dict就可以迭代
*)如何判斷對象是否可以迭代
利用collection模組的iterable類型判斷
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/AB/wKioL1lly2yQnZaeAAANnfS8A68549.png" style="float:none;" title="Screenshot from 2017-07-12 09-21-36.png" alt="wKioL1lly2yQnZaeAAANnfS8A68549.png" />
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/9B/AB/wKioL1lly2zSLdVSAAAZenz-BjA313.png" style="float:none;" title="Screenshot from 2017-07-12 09-22-41.png" alt="wKioL1lly2zSLdVSAAAZenz-BjA313.png" />
*)利用python內建的枚舉方法enumerate,把一個list變成索引-元素對
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/9B/AB/wKioL1lly8mTHKPbAAAhYtbiKDU558.png" title="Screenshot from 2017-07-12 09-23-37.png" alt="wKioL1lly8mTHKPbAAAhYtbiKDU558.png" />
*)for迴圈裡,同時引用兩個變數,並且迭代顯示
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/9B/AB/wKiom1llzBWCWWhBAAAppUzbvL8934.png" title="Screenshot from 2017-07-12 09-24-42.png" alt="wKiom1llzBWCWWhBAAAppUzbvL8934.png" />
*)列表產生式
range模組
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/AB/wKiom1llzF7QbCAaAAAdgjjRy04740.png" title="Screenshot from 2017-07-12 09-25-44.png" alt="wKiom1llzF7QbCAaAAAdgjjRy04740.png" />
列表產生式:
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/9B/AB/wKioL1llzIOCJEHyAAAjsXcYMd0441.png" title="Screenshot from 2017-07-12 09-27-11.png" alt="wKioL1llzIOCJEHyAAAjsXcYMd0441.png" />
##迴圈太麻煩,而列表產生式則可以用一行語句代替迴圈產生上面的list
*)清單產生器
**)為什麼需要清單產生器:
通過列表產生式,我們可以直接建立一個列表,受到記憶體限制,列表容量肯定是有限的;
建立一個包含100萬個元素的列表,佔用很大的 儲存空間;
**)產生器是什麼:
在迴圈過程中不斷推算出後續的元素,這樣就不必建立完整的list,從而節省大量的空間。在python中,這種一邊迴圈一邊計算的機制,稱為產生器
##使用g.next()方法依次讀取元素(麻煩)
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/9B/AB/wKioL1llzcWBi3HUAABpse00OK0513.png" title="Screenshot from 2017-07-12 09-28-30.png" alt="wKioL1llzcWBi3HUAABpse00OK0513.png" />
##使用for迴圈(簡單快捷方便)
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/9B/AB/wKioL1llzePCGipFAAATK3XnBVk802.png" title="Screenshot from 2017-07-12 09-29-09.png" alt="wKioL1llzePCGipFAAATK3XnBVk802.png" />
python基礎二