1.字典
1.1.字典的定義:
在元組和列表中,都是通過編號進行元素的訪問,但有的時候我們按名字進行資料甚至資料結構的訪問,所以引入了字典
字典是一種通過名字或者關鍵字引用的得資料結構,其鍵可以是數字、字串、元組,這種結構類型也稱之為映射。映射其實就是一組key和value以及之間的映射函數,其特點是:key的唯一性、key與value的一對多的映射。
1.2.字典的方法
| dict.clear() |
刪除字典中所有元素 |
| dict.copy() |
返回字典(淺複製)的一個副本 |
| dict.fromkeysc(seq,val=None) |
建立並返回一個新字典,以seq 中的元素做該字典的鍵,val 做該字典中所有鍵對應的初始值(如果不提供此值,則預設為None) |
| dict.get(key,default=None) |
對字典dict 中的鍵key,返回它對應的值value,如果字典中不存在此鍵,則返回default 的值(注意,參數default 的預設值為None) |
| dict.has_key(key) |
如果鍵(key)在字典中存在,返回True,否則返回False. 在Python2.2版本引入in 和not in 後,此方法幾乎已廢棄不用了,但仍提供一個 可工作的介面。 |
| dict.items() |
返回一個包含字典中(鍵, 值)對元組的列表 |
| dict.keys() |
返回一個包含字典中鍵的列表 |
| dict.values() |
返回一個包含字典中所有值的列表 |
| dict.iter() |
方法iteritems(), iterkeys(), itervalues()與它們對應的非迭代方法一樣,不同的是它們返回一個迭代子,而不是一個列表。 |
| dict.pop(key[, default]) |
和方法get()相似,如果字典中key 鍵存在,刪除並返回dict[key],如果key 鍵不存在,且沒有給出default 的值,引發KeyError 異常。 |
| dict.setdefault(key,default=None) |
和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。 |
| dict.setdefault(key,default=None) |
和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。 |
練習:
購物車程式需求: 1.啟動程式後,讓使用者輸入工資,然後列印商品列表; 2.允許使用者根據商品編號購買商品; 3.使用者選擇商品後,檢測餘額是否足夠,足夠直接扣款,不夠就提醒; 4.可隨意退出,退出時列印購買的商品和餘額‘
建立一個使用者登入系統:儲存使用者的使用者名稱和密碼建立使用者時,判斷使用者是否存在,若存在則報錯登入系統時,確保使用者名稱存在於系統中,密碼錯誤有三次機會,超過三次機會會報錯登陸時判斷本次登陸與上次登陸的時間差,如果time<4h,顯示你已經
2.函數:
2.1.函數的聲明 Python中的函數以如下形式聲明:
def 函數名稱([參數1,參數2,參數3......]):
執行語句
2.2 關鍵字return 和pass
函數在執行過程中一旦遇到return,函數就執行完畢,並將結果返回。
函數在執行過程中沒有遇到return時,傳回值None.
如果要定義一個什麼也不做的空函數時,可以用pass語句,作為一個預留位置,讓代碼先運行起來
2.3.函數的參數
參數定義的順序:必選參數 > 預設參數 > 可變參數 > 關鍵字參數
函數的參數檢查
函數返回多個值,實質上是返回一個元組tuple,返回時元組可以省略括弧,
函數調用接收傳回值時,按照位置賦值給變數,
預設參數,必選參數同時存在函數中存在時,一定要將必選參數放在預設參數前面;設定預設參數時,把變化大的參數放前面,變化小的參數放後面,變化小的參數可以設定為預設參數。 預設參數一般是是不可變資料類型
可變參數
定義函數時,形參可以為*args,使函數可以接收多個參數,接收的資料類型為元組;
如果想將一個列表或者元組傳入函數,也可通過*li 或 *t,將參數傳入函數裡
*args,可變參數,args接收的是tuple
練習:返回一個可變參數的第一字元
關鍵字參數
**kwargs,關鍵字參數,kwargs接收的是字典