Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 課件 集合與字典_第1頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 課件 集合與字典_第2頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 課件 集合與字典_第3頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 課件 集合與字典_第4頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 課件 集合與字典_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Python語(yǔ)言程序設(shè)計(jì)》集合與字典Contents掌握集合Set的用法字典Dictionary的用法序列、集合和字典的高級(jí)應(yīng)用集合SetPART01Python中的集合(set)由若干無(wú)序的元素組成,每個(gè)元素都是唯一的(即集合中不能包含重復(fù)值的元素)且必須是可哈希類型的數(shù)據(jù)??梢允褂靡粚?duì)大括號(hào){}或set函數(shù)創(chuàng)建集合,如果要?jiǎng)?chuàng)建空集合則只能使用set函數(shù)。創(chuàng)建集合集合Set【任務(wù)描述】了解集合及其特性了解集合常用操作【關(guān)鍵步驟】了解集合及其特性了解集合常用操作示例01s=set([23,37,12,37,28])#創(chuàng)建集合對(duì)象并賦給sprint('s的值為:',s)#輸出s集合中不能包含有重復(fù)值的元素。如果創(chuàng)建集合或向集合中插入元素時(shí),指定的元素具有重復(fù)值,則集合會(huì)自動(dòng)過濾掉重復(fù)值的元素、使得每種取值的元素只保留一個(gè)。s的值為:{28,12,37,23}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:集合Set示例01s.add(x)集合中提供了兩種插入元素的方法,分別是add和update。add方法的語(yǔ)法格式為:s.update(x)其作用是把x作為一個(gè)新的元素插入到集合s中,其中x必須是一個(gè)可哈希對(duì)象。update方法的語(yǔ)法格式為:其作用是把x拆分成多個(gè)元素后再將這多個(gè)元素插入到集合中,其中x必須是一個(gè)可迭代對(duì)象。集合Set示例011 s1=set([1,2])#創(chuàng)建集合對(duì)象并賦給變量s12 s2=set([1,2])#創(chuàng)建集合對(duì)象并賦給變量s23 s1.add('Python')#使用add方法向s1中插入元素'Python'4 s2.update('Python')#使用update方法將'Python'拆分成多個(gè)元素再插入到s2中5 print('s1的值為:',s1)6 print('s2的值為:',s2)7 #s1.add([4,5])#取消前面的注釋則會(huì)報(bào)錯(cuò)8 s2.update([4,5])#使用update方法將[4,5]拆分成多個(gè)元素再插入到s2中9 print('s1的值為:',s1)10 print('s2的值為:',s2)11 s1.add(3)#使用add方法向s1中插入元素312 #s2.update(3)#取消前面的注釋則會(huì)報(bào)錯(cuò)add方法和update方法使用示例s1的值為:{1,2,'Python'}s2的值為:{'y',1,2,'t','n','h','P','o'}s1的值為:{1,2,'Python'}s2的值為:{'y',1,2,'t',4,'n',5,'h','P','o'}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:集合Set示例01ersection(s2)集合中的intersection方法可以用于計(jì)算一個(gè)集合與另一個(gè)集合的交集。其作用是計(jì)算s1和s2的交集并返回。intersection方法不會(huì)修改s1和s2本身的值。集合Set示例01s1.union(s2)集合中的union方法可以用于計(jì)算一個(gè)集合與另一個(gè)集合的并集。其作用是計(jì)算s1和s2的并集并返回。union方法不會(huì)修改s1和s2本身的值。集合Set示例01s1.difference(s2)集合中的difference方法可以用于計(jì)算一個(gè)集合與另一個(gè)集合的差集。其作用是計(jì)算s1和s2的差集并返回,差集是指由包含在s1中但不包含在s2中的元素組成的集合。difference方法不會(huì)修改s1和s2本身的值。集合Set示例01s1.symmetric_difference(s2)集合中的symmetric_difference方法可以用于計(jì)算一個(gè)集合與另一個(gè)集合的對(duì)稱差集。其作用是計(jì)算s1和s2的對(duì)稱差集并返回,對(duì)稱差集是指由只包含在s1中或只包含在s2中的元素組成的集合。symmetric_difference方法不會(huì)修改s1和s2本身的值。集合Set示例01s1=set([1,2,3])#創(chuàng)建集合對(duì)象并賦給變量s1s2=set([2,3,4])#創(chuàng)建集合對(duì)象并賦給變量s2s3=ersection(s2)#計(jì)算s1和s2的交集,并將返回集合賦給s3s4=s1.union(s2)#計(jì)算s1和s2的并集,并將返回集合賦給s4s5=s1.difference(s2)#計(jì)算s1和s2的差集,并將返回集合賦給s5s6=s1.symmetric_difference(s2)#計(jì)算s1和s2的對(duì)稱差集,并將返回集合賦給s6print('s1和s2的值分別為:',s1,s2)print('s1和s2的交集為:',s3)print('s1和s2的并集為:',s4)print('s1和s2的差集為:',s5)print('s1和s2的對(duì)稱差集為:',s6)交集、并集、差集、對(duì)稱差集示例s1和s2的值分別為:{1,2,3}{2,3,4}s1和s2的交集為:{2,3}s1和s2的并集為:{1,2,3,4}s1和s2的差集為:{1}s1和s2的對(duì)稱差集為:{1,4}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:集合Set示例01s1.issubset(s2)集合中的issubset方法可以用于判斷一個(gè)集合是否是另一個(gè)集合的子集。其作用是判斷s1是否是s2的子集。如果s1是s2的子集,則返回True;否則,返回False。集合Set示例01s1.issuperset(s2)集合中的issuperset方法可以用于判斷一個(gè)集合是否是另一個(gè)集合的父集。其作用是判斷s1是否是s2的父集(即判斷s2是否是s1的子集)。如果s1是s2的父集,則返回True;否則,返回False。集合Set示例01s1=set([1,2,3,4])#創(chuàng)建集合對(duì)象并賦給變量s1s2=set([2,3,4,5])#創(chuàng)建集合對(duì)象并賦給變量s2s3=set([1,3])#創(chuàng)建集合對(duì)象并賦給變量s3print('s3是s1的子集:',s3.issubset(s1))print('s1是s3的父集:',s1.issuperset(s3))print('s3是s2的子集:',s3.issubset(s2))print('s2是s3的父集:',s3.issuperset(s2))子集、父集示例s3是s1的子集:Trues1是s3的父集:Trues3是s2的子集:Falses2是s3的父集:False程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:集合Set示例01字典DictionaryPART02與集合類似,字典(dictionary)也是由若干無(wú)序的元素組成。但與集合不同的是,字典是一種映射類型,字典中的每個(gè)元素都是鍵(key):值(value)的形式。字典中每個(gè)元素鍵的取值必須唯一(即集合中不能包含鍵值的元素)且必須是可哈希類型的數(shù)據(jù),但對(duì)于每個(gè)元素值的取值則沒有任何限制。字典的主要應(yīng)用是做數(shù)據(jù)的快速檢索。實(shí)際使用字典時(shí),將要查詢的數(shù)據(jù)作為鍵,將其他數(shù)據(jù)作為值。例如,在進(jìn)行學(xué)生信息管理時(shí),經(jīng)常要根據(jù)學(xué)號(hào)進(jìn)行學(xué)生信息的查詢,此時(shí)就可以將學(xué)號(hào)作為鍵、而將其他信息作為值??梢允褂靡粚?duì)大括號(hào){}或dict函數(shù)創(chuàng)建字典,如果要?jiǎng)?chuàng)建空字典可以使用{}或dict()。創(chuàng)建字典字典Dictionary【任務(wù)描述】了解字典及其特性了解字典常用操作【關(guān)鍵步驟】了解字典及其特性了解字典常用操作示例02d.fromkeys(seq[,value])使用fromkeys方法進(jìn)行字典初始化的方法。其中,d是一個(gè)已創(chuàng)建的字典對(duì)象;seq是一個(gè)包含了字典所有鍵名的序列;value是一個(gè)可選參數(shù),其指定了各元素的初始值,默認(rèn)情況下所有元素的值都被賦為None。字典Dictionary示例02d1={}.fromkeys(['sno','name','major'])d2=dict().fromkeys(['sno','name','major'],'Unknown')print('d1的值為:',d1)print('d2的值為:',d2)示例:d1的值為:{'sno':None,'name':None,'major':None}d2的值為:{'sno':'Unknown','name':'Unknown','major':'Unknown'}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例02d.update(d2)#用另一個(gè)字典對(duì)象d2的元素修改或插入字典對(duì)象d的元素或d.update(鍵1=值1,鍵2=值2,…,鍵N=值N)#用鍵值列表修改或插入字典對(duì)象d的元素給指定鍵的元素賦值時(shí),如果該鍵在字典中已存在,則會(huì)將該鍵對(duì)應(yīng)的元素值做修改;如果該鍵在字典中不存在,則會(huì)在字典中插入一個(gè)新元素。另外,也可以使用字典中的update方法一次修改或插入多個(gè)元素,update方法的語(yǔ)法格式為:字典Dictionary示例021 stu=dict(sno='1810101')#創(chuàng)建字典對(duì)象并賦給變量stu2 print(stu)#輸出stu的值3 stu['sno']='1810100'#將鍵為'sno'的元素的值修改為'1810100'4 print(stu)#輸出stu的值5 stu['name']='李曉明'#插入一個(gè)鍵為'name'的元素,其值為'李曉明'6 print(stu)#輸出stu的值7 stu.update({'name':'馬紅','age':19})8 print(stu)#輸出stu的值9 stu.update(name='張剛',major='計(jì)算機(jī)')10 print(stu)#輸出stu的值示例:{'sno':'1810101'}{'sno':'1810100'}{'sno':'1810100','name':'李曉明'}{'sno':'1810100','name':'馬紅','age':19}{'sno':'1810100','name':'張剛','age':19,'major':'計(jì)算機(jī)'}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例01d.pop(key[,default])使用del可以刪除某個(gè)元素,也可以使用字典中的pop方法刪除指定鍵的元素。其作用是從字典d中刪除鍵為key的元素并返回該元素的值;如果d中不存在鍵為key的元素,則返回default參數(shù)的值。字典Dictionary示例021 d=dict(sno='1810100',name='李曉明',age=19)#創(chuàng)建字典對(duì)象并賦給變量d2 print('第2行輸出的字典d:',d)#輸出d的值3 deld['age']#使用del刪除d中鍵為'age'的元素4 name=d.pop('name')#使用pop刪除d中鍵為'name'的元素,并將返回的元素值賦給name5 print('name的值為:',name)6 print('第6行輸出的字典d:',d)7 major=d.pop('major','Notfound')#使用pop刪除d中鍵為'major'的元素,并將返回的元素值賦給major8 print('major的值為:',major)示例:第2行輸出的字典d:{'sno':'1810100','name':'李曉明','age':19}name的值為:李曉明第6行輸出的字典d:{'sno':'1810100'}major的值為:Notfound程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例02len(d)使用Python提供的len方法可以計(jì)算字典中的元素個(gè)數(shù),len方法的語(yǔ)法格式為:字典d中的元素個(gè)數(shù)為:3程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:其中,d為要計(jì)算元素個(gè)數(shù)的字典。例如,對(duì)于下面的代碼:d=dict(sno='1810100',name='李曉明',age=19)#創(chuàng)建字典對(duì)象并賦給變量dprint('字典d中的元素個(gè)數(shù)為:',len(d))字典Dictionary示例02d.clear()使用字典中的clear方法可以一次將一個(gè)字典中的所有元素都清除,clear方法的語(yǔ)法格式為:字典d中的元素個(gè)數(shù)為:3字典d中的元素個(gè)數(shù)為:0程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:其中,d為要清除元素的字典。例如,對(duì)于下面的代碼:d=dict(sno='1810100',name='李曉明',age=19)#創(chuàng)建字典對(duì)象并賦給變量dprint('字典d中的元素個(gè)數(shù)為:',len(d))d.clear()#調(diào)用clear方法清除d中的所有元素print('字典d中的元素個(gè)數(shù)為:',len(d))字典Dictionary示例02d.get(key,default=None)我們可以使用兩種方法判斷字段中是否存在某個(gè)鍵。一種方法是使用字典中的get方法,其語(yǔ)法格式為:其作用是從字典d中獲取鍵為key的元素的值并返回。如果在字典d中不存在鍵為key的元素,則返回default參數(shù)的值(默認(rèn)為None)。另一種方法是使用成員運(yùn)算符in。字典Dictionary示例02d=dict(sno='1810100',name='李曉明')#創(chuàng)建字典對(duì)象并賦給變量difd.get('sno')!=None:#如果get方法返回的不是Noneprint('字典d中存在鍵為sno的元素')else:#否則

print('字典d中不存在鍵為sno的元素')if'name'ind:#如果字典d中有鍵為'name'的元素

print('字典d中存在鍵為name的元素')else:print('字典d中不存在鍵為name的元素')ifd.get('age')!=None:#如果get方法返回的不是Noneprint('字典d中存在鍵為age的元素')else:#否則

print('字典d中不存在鍵為age的元素')示例:字典d中存在鍵為sno的元素字典d中存在鍵為name的元素字典d中不存在鍵為age的元素程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例02第一種:

dMerge=dict(d1,**d2)第二種:

dMerge=d1.copy() dMerge.update(d2)這里介紹2種不同的字典拼接方法:其中,d1和d2是待拼接的兩個(gè)字典,dMerge用于保存拼接后的字典。字典Dictionary示例02d1=dict(sno='1810100',name='李曉明')#創(chuàng)建字典對(duì)象并賦給變量d1d2=dict(age=19)#創(chuàng)建字典對(duì)象并賦給變量d2dMerge1=dict(d1,**d2)print('dMerge1的值為:',dMerge1)dMerge2=d1.copy()#使用copy方法復(fù)制d1生成新的字典對(duì)象并賦給dMerge2dMerge2.update(d2)#根據(jù)d2中的元素對(duì)dMerge2進(jìn)行修改/插入操作print('dMerge2的值為:',dMerge2)示例:dMerge1的值為:{'sno':'1810100','name':'李曉明','age':19}dMerge2的值為:{'sno':'1810100','name':'李曉明','age':19}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例02d.keys()使用字典中的keys方法可以獲取一個(gè)字典所有的鍵,keys方法的語(yǔ)法格式為:d中的鍵為:dict_keys(['sno','name'])程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:d=dict(sno='1810100',name='李曉明')#創(chuàng)建字典對(duì)象并賦給變量dprint('d中的鍵為:',d.keys())其作用是返回一個(gè)包含d中所有鍵的對(duì)象。例如,對(duì)于下面的代碼:字典Dictionary示例02d.values()使用字典中的values方法可以獲取一個(gè)字典所有的值,values方法的語(yǔ)法格式為:d中的值為:dict_values(['1810100','李曉明'])程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:d=dict(sno='1810100',name='李曉明')#創(chuàng)建字典對(duì)象并賦給變量dprint('d中的鍵為:',d.values())其作用是返回一個(gè)包含d中所有值的對(duì)象。例如,對(duì)于下面的代碼:字典Dictionary示例02d.items()使用字典中的items方法可以返回一個(gè)可按(鍵,值)方式遍歷的對(duì)象,items語(yǔ)法格式為:sno1810100name李曉明程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:d=dict(sno='1810100',name='李曉明')#創(chuàng)建字典對(duì)象并賦給變量dforkey,valueind.items():print(key,value)其中,d是一個(gè)字典。例如,對(duì)于下面的代碼:字典Dictionary示例01d.copy()使用字典中的copy方法可以實(shí)現(xiàn)一個(gè)字典的淺拷貝。copy方法的語(yǔ)法格式為:其作用是返回一個(gè)對(duì)字典d進(jìn)行淺拷貝而得到的新字典。字典Dictionary示例021 stu1={'name':'李曉明','age':19,'score':{'python':95,'math':92}}2 stu2=stu1#直接賦值,此時(shí)stu2和stu2指向同一個(gè)字典對(duì)象3 stu3=stu1.copy()#使用copy方法進(jìn)行淺拷貝4 print('stu1、stu2和stu3的內(nèi)存地址分別為:',id(stu1),id(stu2),id(stu3))5 stu1['name']='馬紅'#將stu1中鍵為name的元素的值修改為'馬紅'6 print('stu1的值為:',stu1)7 print('stu2的值為:',stu2)8 print('stu3的值為:',stu3)9 print("stu1['score']和stu3['score']的內(nèi)存地址分別為:",id(stu1['score']),id(stu3['score']))10 stu1['score']['python']=10011 print('stu1的值為:',stu1)12 print('stu3的值為:',stu3)示例:字典Dictionary示例02stu1、stu2和stu3的內(nèi)存地址分別為:241848282956824184828295682418482829928stu1的值為:{'name':'馬紅','age':19,'score':{'python':95,'math':92}}stu2的值為:{'name':'馬紅','age':19,'score':{'python':95,'math':92}}stu3的值為:{'name':'李曉明','age':19,'score':{'python':95,'math':92}}stu1['score']和stu3['score']的內(nèi)存地址分別為:24184828294962418482829496stu1的值為:{'name':'馬紅','age':19,'score':{'python':100,'math':92}}stu3的值為:{'name':'李曉明','age':19,'score':{'python':100,'math':92}}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:淺拷貝使得原有字典對(duì)象和生成的字典對(duì)象具有一定獨(dú)立性,但并不完全獨(dú)立;當(dāng)對(duì)字典可變類型元素中的元素做修改時(shí),則會(huì)產(chǎn)生問題。為了解決這個(gè)問題,對(duì)于含有可變類型元素的字典對(duì)象,我們應(yīng)該使用深拷貝方法。字典Dictionary示例02copy.deepcopy(d)使用copy模塊的deepcopy方法可以實(shí)現(xiàn)深拷貝,deepcopy方法的語(yǔ)法格式為:其作用是根據(jù)字典d進(jìn)行深拷貝創(chuàng)建一個(gè)新的字典對(duì)象并返回。深拷貝不僅使得原有字典對(duì)象和生成的字典對(duì)象對(duì)應(yīng)不同的內(nèi)存空間,而且使得兩個(gè)字典對(duì)象中的可變類型元素對(duì)應(yīng)不同的內(nèi)存空間,從而使得兩個(gè)字典對(duì)象完全獨(dú)立。字典Dictionary示例021 importcopy#導(dǎo)入copy模塊2 stu1={'name':'李曉明','age':19,'score':{'python':95,'math':92}}3 stu2=copy.deepcopy(stu1)#使用deepcopy方法進(jìn)行深拷貝4 print("stu1和stu2的內(nèi)存地址分別為:",id(stu1),id(stu2))5 print("stu1['score']和stu2['score']的內(nèi)存地址分別為:",id(stu1['score']),id(stu2['score']))6 stu1['score']['python']=1007 print('stu1的值為:',stu1)8 print('stu2的值為:',stu2)示例:字典Dictionary示例02stu1和stu2的內(nèi)存地址分別為:26156341230082613491686568stu1['score']和stu2['score']的內(nèi)存地址分別為:26156341229362613491862984stu1的值為:{'name':'李曉明','age':19,'score':{'python':100,'math':92}}stu2的值為:{'name':'李曉明','age':19,'score':{'python':95,'math':92}}程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:字典Dictionary示例02高級(jí)應(yīng)用PART03高級(jí)應(yīng)用【任務(wù)描述】了解切片作用及操作了解列表生成器作用及操作了解生成器作用及操作了解迭代器作用及操作【關(guān)鍵步驟】了解切片作用及操作了解列表生成器作用及操作了解生成器作用及操作了解迭代器作用及操作示例03從一個(gè)序列對(duì)象中取部分元素形成一個(gè)新的序列對(duì)象是一個(gè)非常常用的操作,這個(gè)操作被稱作切片(slice)。切片操作除了可以取指定范圍中的多個(gè)連續(xù)元素,還可以以固定步長(zhǎng)取指定范圍中的多個(gè)不連續(xù)元素。高級(jí)應(yīng)用示例031 ls1=list(range(0,20))#創(chuàng)建包含20個(gè)元素(0至19)的列表對(duì)象并賦給ls2 print('ls1:',ls1)#輸出ls13 ls2=ls1[3:10:2]#從ls1下標(biāo)從3至9的元素中以步長(zhǎng)2取元素生成一個(gè)新列表賦給ls24 print('ls2:',ls2)#輸出ls25 ls3=ls1[-10::3]#從ls1倒數(shù)第10個(gè)元素開始到最后一個(gè)元素以步長(zhǎng)3取元素生成一個(gè)新列表賦給ls36 print('ls3:',ls3)#輸出ls37 ls4=ls1[-1:-11:-3]#從ls1最后一個(gè)元素到倒數(shù)第10個(gè)元素以步長(zhǎng)-3取元素生成一個(gè)新列表賦給ls48 print('ls4:',ls4)#輸出ls4示例:ls1:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]ls2:[3,5,7,9]ls3:[10,13,16,19]ls4:[19,16,13,10]程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:高級(jí)應(yīng)用示例03ls=[x*xforxinrange(10)]#創(chuàng)建包含10個(gè)元素的列表對(duì)象并賦給lsprint(ls)#輸出ls在列表生成表達(dá)式中,可以使用for、if以及一些運(yùn)算生成列表中的元素。[0,1,4,9,16,25,36,49,64,81]程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:即通過for使得x在0至9范圍內(nèi)依次取值,對(duì)于每一個(gè)x,將x*x的計(jì)算結(jié)果作為列表對(duì)象中的元素。高級(jí)應(yīng)用示例03ls=[x*xforxinrange(10)ifx%2!=0]#創(chuàng)建由0至9中所有奇數(shù)的平方組成的列表對(duì)象print(ls)#輸出ls還可以在for后面加上if判斷。例如,對(duì)于下面的代碼:[1,9,25,49,81]程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:高級(jí)應(yīng)用示例03snolist=['1810101','1810102','1810103']namelist=['李曉明','馬紅','張剛']ls=['學(xué)號(hào):'+sno+',姓名:'+nameforsnoinsnolistfornameinnamelist]forstuinls:print(stu)另外,列表生成表達(dá)式中也支持多層循環(huán)的形式,這里只給出兩層循環(huán)的例子。學(xué)號(hào):1810101,姓名:李曉明學(xué)號(hào):1810101,姓名:馬紅學(xué)號(hào):1810101,姓名:張剛學(xué)號(hào):1810102,姓名:李曉明學(xué)號(hào):1810102,姓名:馬紅學(xué)號(hào):1810102,姓名:張剛學(xué)號(hào):1810103,姓名:李曉明學(xué)號(hào):1810103,姓名:馬紅學(xué)號(hào):1810103,姓名:張剛程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:高級(jí)應(yīng)用示例03g=(x*xforxinrange(10))#創(chuàng)建一個(gè)生成器對(duì)象并賦給gprint('g的類型為:',type(g))foriing:print(i,end='')通過生成器(generator)來(lái)根據(jù)需要進(jìn)行計(jì)算并獲取列表中某個(gè)元素的值。將列表生成表達(dá)式中的一對(duì)中括號(hào)改為一對(duì)小括號(hào)即可得到生成器。g的類型為:<class'generator'>0149162536496481程序執(zhí)行完畢后,將在屏幕上輸出如下結(jié)果:高級(jí)應(yīng)用示例03deffaclist(n):#定義函數(shù)faclistresult=1foriinrange(2,n+1):#i在2至n范圍內(nèi)依次取值

yieldresult#遇到y(tǒng)ield即暫停執(zhí)行并返回result,下次執(zhí)行時(shí)繼續(xù)從此處開始執(zhí)行

result*

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論