課堂筆記隨記字典函數(shù)v0_第1頁
課堂筆記隨記字典函數(shù)v0_第2頁
課堂筆記隨記字典函數(shù)v0_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、#如果該行類型在字典里-累加if fileType in resDict:resDictfileType += fileSize#否則就新增鍵值對else:resDictfileType = fileSizepr(-lesson_15-字典-)字典的定義:1-dict1 = -空字典type()-字典名 = 鍵名:值,鍵名 2:值 2字典的優(yōu)勢:描述清楚查找方便擴展性好3-字典的特性:1-它沒有下標-不是序列類型! 2-一種-map字典是 mutable 的-可以改變4-字典的常用操作-dict1 = name: Jack, age: 40 1-獲取值:dict1name2-改變值:name已

2、經存在,dict1name = tom 3-新增:這個鍵名不存在:dict1weight = 1603從尾部增加2無序的如果需要獲取的值對應的鍵不存在,那么- KeyError: weight 5-字典元素不存在順序的概念字典不會存在相同鍵名相同鍵名時候,后面的值會覆蓋前面的值唯一的鍵、值的類型:鍵的類型:數(shù)值字符串元組列表-*不能作為鍵-TypeError: unhashable type: list 5-字典*不能作為鍵6-鍵一定是哈希類型-不能改變的!2-值的類型:任意類型9-鍵值對一定要成對出現(xiàn)嗎?-鍵值對10- name in dict1 bool字典的技巧:刪除字典元素:del 字

3、典名鍵pop-有返回值 3-沒有 remove4- dict1.clear() 與 dict1 = 地址不一樣字典的遍歷:for one in students:-one 依次取-key 鍵students.items()-鍵值對1- (鍵 1,值 1),(鍵 2,值 2)for name , info in students.items(): 7-len()-鍵值長度8-d.clear()-只改變該地址的內容9-d = 重新指向10-得到所有的 key 返回在類 List 中 students.keys() jack, tom 11-得到所有的 value 返回在類 List 中 stude

4、nts.values()12-增加元素d.update(4:4,5:5)問題:描述不清晰如果原本的列表出現(xiàn)元素的個數(shù)變化-有可能會影響后續(xù)代碼嚴格與下標相關字典的定義要求:1- 鍵:可以的類型:字符串、float、元組、不可以是:列表 、字典 -TypeError: unhashable type:不可以改變的類型list-2- 值:任意類型鍵名是不是唯一的?-唯一的 后者覆蓋前者字典能不能改變元素的值?-可以的-dict1鍵名 = 值-這個鍵是存在的-修改值3- 怎么在字典里增加元素?-可以的-dict1鍵名 = 值-這個鍵不存在的-新增鍵值對4- 怎么獲取字典元素值:-pr(dict1na

5、me)5- 這個鍵不存在,獲取這個鍵的值會怎么樣?-KeyError:age怎么在字典的指定位置增加元素?-做不到1- 沒有必要-字典是無序的不通過下標獲取值6-3 語法增加鍵值對在-尾部2 語法-增加鍵值對在-隨機刪除鍵值對:del dict1namedict1.pop(name)沒有 remove()方法字典是無序的-沒有下標!List = #學生列表2-# #Mike, 25, 180,80,Tom, 22, 175,80List.append(mary, 28, 180,80)pr(nameList11)#可讀性不好,#1- 定義字典:解決:順序問題,可讀性問題#鍵:值特性:通過鍵去獲

6、取值定義:1- 鍵:可以是:字符串、浮點數(shù)、元組、不可以改變的對象不可以:TypeError: unhashable type: list 2- 值:任意類型字典的值是可以改變字典沒有下標-不是序列類型鍵值成對鍵是唯一的沒有順序list/dict# dict1 = name:tom,age:20,info:os_id:123456#2- 常用操作#獲取值-如果鍵不存在-會報錯-KeyError:# pr(dict1name)#修改值鍵一定要存在# dict1name = jack # #新增值鍵不存在# dict1weight = 160#刪除-沒有 remove# # #del dict1n

7、amedict1.pop(name)delprdict1name,dict1age(dict1infoos_id)dict1= name:tom,age:20#獲取所有的鍵(type(dict1.keys()#類列表:1- (dict1.keys()one in dict1.keys():不支持下標2- 可以 for 遍歷# # #prpr forpr(one)#pr(list(dict1.keys()#獲取所有的值#pr(dict1.values()#獲取所有的鍵值對# #pr(dict1.items()fora,bprin dict1.items():(a,b)in dict1:#one-

8、鍵(one)#foronepr#import json#后續(xù)代碼需要使用 json 的方法,這里需要提前導入這個模塊,后面才能使用 json 方法#一種數(shù)據(jù)格式-字符串:鍵值對形式vipData = aac003:,: 003:004:,1,1pr(type(vipData)#需求:需要修改里面的#字符串(json)-轉換字典res = json.loads(vipData)號res = 123245566666prpr(res)(type(res)#傳到 requests.t(json.dumps(vipData)pr(-lesson_16 函數(shù)-)1-變量的作用域:0- 全局變量,可以再函

9、數(shù)被!局部變量:函數(shù)-只能在函數(shù)里面使用,在函數(shù)外部不能使用全局變量:函數(shù)外3-在函數(shù)2-缺省參數(shù):修改全局變量:global x1-在函數(shù)定義的時候,給了初始值 def func(a,b,c=0)2-c 這個參數(shù),我在函數(shù)調用的時候可以不傳值,就是默認值。如果傳,那就是傳的值3-定義參數(shù)的時候,可缺省可以放在必填前面嗎? 不能SyntaxError: non-default argument follows default argument 4- 案例:def func(score,sex=M): if score 60:pr(sex+-及格!)else:pr(sex+-不及格)func(8

10、0,W)3-可變數(shù)量參數(shù):(必填,可缺省,可變數(shù))寫法正確-pr1-數(shù)量可變?。嚎梢?n 個 也可以 0 個def calc(*numbers):type(numbers)如果傳值的是元組/列表-用*展開!是個元組建議定義順序: 必填,可缺省,可變數(shù)量關鍵字可變數(shù)量:-dict關鍵字可變數(shù)量3-*d是個字典類型傳值:鍵值對6-傳入字典: *字典-展開 1:100,2:200 1=100 2=200 一定是 str7- *展開的話,key 一定是 string-TypeError: func() keywords strings總結:必填參數(shù)、缺省參數(shù)、可變參數(shù)和關鍵字參數(shù)mustbe必填一定在

11、可缺省的前面-語定缺省參數(shù):不給實參-就默認初始值傳實參實際傳入的參數(shù)必填參數(shù)在可缺省的前面!def pr(self, *args, sep= , end=n,file=None)file, mode=r可變數(shù)量參數(shù):數(shù)量可變-數(shù)量不定!-可以是 N 個* 的作用在形參里面-包裝一個元組在實參里面-展開作用關鍵字可變數(shù)量:1- *d2- func(1,2,3,4,5,6,abc,*dict1)-dict1 的 key 都是 str1- 必填一定要在可缺省前面:SyntaxError: non-default argument follows default argument2- 當 def g

12、etSum(a,*inList,b=100,*c)字典的 keys需要將一個字典進行傳入,那么這個一定是 str,否則 TypeError: getSum() keywords must be strings必填參數(shù):def func(a,b,c):#函數(shù)定義的時候只是變量名-必填形參可缺省參數(shù):def func(a,b,c=100)-概念:函數(shù)調用的時候傳入的一個 c 的值-以實際傳入的為準函數(shù)調用的時候不傳入的一個 c 的值-以默認(定義的時候)的為準作用:方便省事這個默認值一般考慮到調用者大部分時候的-使用的場景(值)位置:可缺省參數(shù)在必填參數(shù)之后可變數(shù)量參數(shù):引入:雖然可缺省的參數(shù)可以

13、代碼帶來省事效果-但是有個數(shù)的限制解決當前困境:成功案例:pr3- 定義:(沒有個數(shù)限制)def func(a,*args,c=3):封裝成一個元組形式數(shù)量可以是 0 個* 封裝元組的效果定義格式:建議:定義函數(shù)參數(shù)的時候:必填、可變數(shù)量、缺省參數(shù)函數(shù)調用-如果需要傳入一個元組類型數(shù)據(jù):* 元組-展開的效果關鍵字可變數(shù)量參數(shù):概念:def func(a,c=3,*b,*kwargs):* 封裝一個-字典(鍵-值)傳入形式: 變量 = 值作用:如同字典的效果:方便查找3-函數(shù)調用時候需要把一個完整字典傳進去*字典名:鍵名一定是字符串匯總:定義字典的鍵名一般都用字符串#全局變量:在一個.py 模塊

14、里面,只要你定義好一個全局變量,后續(xù)代碼都可以使用# # # # # # #x =def2func():global x#下x = 9#局部變量:函數(shù)運行完,這個局部變量就了pr(this x ishe funcx1:-,x)func()pr pr()(this x is outof funcx2,x)#2- 缺省參數(shù)-(必填參數(shù)在缺省參數(shù)的前面!) #這個參數(shù)可以給,可以不給#函數(shù)定義的 def func(a,b=10)#作用:適應用戶的,減少一些常規(guī)操作用戶需要傳入的參數(shù)# def get_sum(start=1,end=100):#用戶不輸入實參-默認值,;用戶輸入已輸入實際值傳入# # # # #i = startsumData = 0 while i = end:sumData += i i += 1return sumData(get_sum(1,10)pr# #prpr(o,end=*)(tom)fo= open(,r)#3- 可變數(shù)量參數(shù):參數(shù)數(shù)量可變-不定*變量名#函數(shù)定義:*會封裝一個元組# def func(a,*b,c=3):#pr(a,b,c)#func(1,2,3,4,5)# # # # # # #defget_sum(*args):sumDa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論