Python程序設(shè)計-教案-單元四 列表、元組、字典和集合_第1頁
Python程序設(shè)計-教案-單元四 列表、元組、字典和集合_第2頁
Python程序設(shè)計-教案-單元四 列表、元組、字典和集合_第3頁
Python程序設(shè)計-教案-單元四 列表、元組、字典和集合_第4頁
Python程序設(shè)計-教案-單元四 列表、元組、字典和集合_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《Python程序設(shè)計》教案單元四列表、元組、字典和集合

教學(xué)內(nèi)容邀請同學(xué)共建項目教學(xué)目標(biāo)素質(zhì)目標(biāo):增強學(xué)生解決問題、根據(jù)實際情況選擇適合的方法的能力。知識目標(biāo):掌握什么是列表以及列表的常見操作。掌握列表的嵌套使用及循環(huán)遍歷。能力目標(biāo):能夠定義列表并正確使用相關(guān)方法,實現(xiàn)邀請同學(xué)共建項目功能。能舉一反三,選擇恰當(dāng)?shù)臄?shù)據(jù)容器編程解決實際問題。教學(xué)重難點教學(xué)重點:Python中列表的相關(guān)語法。教學(xué)難點:Python中列表的應(yīng)用。教學(xué)方法案例分析法、問答法、討論法、講授法、實訓(xùn)法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖課前任務(wù)【教師】布置課前任務(wù),提醒同學(xué)通過學(xué)習(xí)軟件,完成課前任務(wù)請大家預(yù)習(xí)本任務(wù)需要的相關(guān)知識點?!緦W(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生了解本次課的重要性,增加學(xué)生的學(xué)習(xí)興趣考勤

(2min)【教師】清點上課人數(shù),記錄好考勤【學(xué)生】班干部交假條培養(yǎng)學(xué)生的組織紀律性,掌握學(xué)生的出勤情況新課預(yù)熱

(10min)【教師】與學(xué)生簡單互動,復(fù)習(xí)回顧上次課的內(nèi)容等【學(xué)生】聆聽、互動【教師】概括項目總體需要學(xué)習(xí)內(nèi)容列表(list)是包含零個或多個元素的有序序列。列表的長度和內(nèi)容都是可變的,用戶可自由對列表中的元素進行添加、刪除或修改等操作。列表沒有長度限制,元素類型也可以不同,可以同時包含數(shù)字、字符串等基本類型,和列表、元組、字典、集合及其他自定義數(shù)據(jù)類型的對象,使用非常靈活。通過老師與學(xué)生的互動,并讓學(xué)生了解這次課的知識點大致要求問題導(dǎo)入(5min)【教師】提出以下問題:我們都學(xué)過了C語言,請大家思考一下,C語言如何生成隨機數(shù)?【學(xué)生】思考、舉手回答【教師】通過學(xué)生的回答引入要講的知識通過問題導(dǎo)入的方法,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知

(30min)一、列表的創(chuàng)建和訪問【教師】講解Python中的列表的創(chuàng)建和訪問創(chuàng)建列表只需將逗號分隔的不同元素使用方括號括起來即可。例如:animal=['elephant','monkey','snake','tiger']#創(chuàng)建列表animalnumber=[1,2,3,4,5] #創(chuàng)建列表number與字符串一樣,可以通過下標(biāo)索引的方式來訪問列表中的元素。列表的正索引也是從0開始的,同樣也可以是負索引。例如,使用animal[0]訪問上述列表animal中索引為0的元素,取值為“elephant”。【教師】強調(diào)以下問題(1)與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù),因此,列表必須通過顯式的數(shù)據(jù)賦值才能生成,簡單將一個列表賦值給另一個列表不會生成新的列表對象,只會對原有列表生成一個新的引用。(2)還可以使用list()函數(shù)將字符串、range對象、元組等轉(zhuǎn)換為列表。其語法格式為“l(fā)ist(obj)”,其中obj為需要轉(zhuǎn)換的對象。例如:list('helloworld') #將字符串轉(zhuǎn)換為列表,結(jié)果為['h','e','l','l','o','','w','o','r','l','d']list(range(1,10,2)) #將range對象轉(zhuǎn)換為列表,結(jié)果為[1,3,5,7,9]【學(xué)生】聆聽、記錄、理解【教師】演示例4-1至例4-3程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的輸出結(jié)果是()。str=[['a','b'],[1,2],'Python',['一','二','三','四']]print(str[2][2])A.2 B.t C.Python D.三【學(xué)生】完成題目【教師】隨機點名回答二、列表的基本操作【教師】講解Python中的列表的基本操作由于列表屬于序列類型,所以它也支持通用序列的所有操作。除了這些操作,Python還提供了大量方法用于列表元素的添加、刪除和排序等。1、添加元素列表可使用append()、extend()或insert()方法來添加元素。(1)append()方法:在列表末尾添加新的元素,其語法格式如下。list.append(obj)其中,list表示列表,obj表示添加到列表末尾的對象。例如:number=[0,1,2,3] #創(chuàng)建列表number并賦值number.append(4) #使用append()方法給number末尾添加元素4print(number) #輸出number,結(jié)果為[0,1,2,3,4](2)extend()方法:在列表末尾一次性添加另一個序列中的多個值(用新列表擴展原來的列表),其語法格式如下。list.extend(seq)其中,list表示列表,seq表示添加到列表末尾的序列?!窘處煛坎贾妙}目(1)以下程序的輸出結(jié)果是()。Is=["I","you","he"]Is.append("she")print(Is)A.['she','I','you','he'] B.['I','she','you','he']C.['I','you','she','he'] D.['I','you','he','she'](2)以下程序的輸出結(jié)果是_______。x=[1,2,3]y=x[:]y.append(4)print(x,y)【學(xué)生】完成題目【教師】隨機點名回答(3)insert()方法:將指定對象插入到列表的指定位置,其語法格式如下。list.insert(index,obj)其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的對象。例如:number=[1,2,4,5] #創(chuàng)建列表number并賦值number.insert(2,3)#使用insert()方法將元素3添加到列表索引為2的位置print(number) #輸出number,結(jié)果為[1,2,3,4,5]2、刪除元素在列表中,刪除元素的常用方法有3種,分別是del命令、pop()方法和remove()方法。(1)del命令:根據(jù)索引刪除列表中的元素。例如:number=[1,2,3,4,5] #創(chuàng)建列表number并賦值delnumber[2] #使用del命令刪除number中索引為2的元素print(number) #輸出number,結(jié)果為[1,2,4,5]del命令還可以使用分片的方式刪除列表中的元素。例如:number=[1,2,3,4,5]#創(chuàng)建列表number并賦值delnumber[1:3]#使用del命令刪除索引從1到3(不含)的元素print(number) #輸出number,結(jié)果為[1,4,5](2)pop()方法:根據(jù)索引刪除列表中的元素,并返回該元素的值,其語法格式如下。list.pop([index])其中,list表示列表,index表示刪除列表元素的索引值,為可選參數(shù),缺省時為?1,刪除列表中的最后一個元素。例如:number=[1,2,3,4,5] #創(chuàng)建列表number并賦值number.pop() #使用pop()方法刪除number中的元素,返回值為5print(number) #輸出number,結(jié)果為[1,2,3,4]number.pop(0)#使用pop()方法刪除number中索引為0的元素,返回值為1print(number) #輸出number,結(jié)果為[2,3,4](3)remove()方法:刪除列表中某個值的第一個匹配項,其語法格式如下。list.remove(obj)其中,list表示列表,obj表示列表中要刪除的對象?!窘處煛坎贾妙}目(1)以下程序的輸出結(jié)果是()。Lis=["football","basketball","piano","ping-pang","teninis"]Lis.pop(2)print(Lis)A.["football","piano","ping-pang","teninis"] B.["football","basketball","ping-pang","teninis"] C.["football","basketball","piano","teninis"] D.["basketball","piano","ping-pang","teninis"](2)以下程序的輸出結(jié)果是______。x=[1,2,3,4,5]print(x.pop())(3)以下程序的輸出結(jié)果是______。Lis=['A','B','C','D','a','b','c','d']foriinLis:ifi=='D':Lis.remove(i)print(Lis)【學(xué)生】完成題目【教師】隨機點名回答【教師】強調(diào)以下問題remove()方法只能刪除列表中第一個匹配的元素,如果要刪除所有匹配的元素,就需要搭配循環(huán)語句實現(xiàn)?!緦W(xué)生】聆聽、記錄、理解3、切片與使用索引來訪問單個元素類似,使用切片操作可以訪問一定范圍內(nèi)的元素,即可以通過指定范圍索引對列表進行分片取值。一般來說,切片操作需要提供兩個索引作為邊界,第一個索引是包含在切片內(nèi)的,而第二個不包含在切片內(nèi)。切片是提取序列的一部分,所以切片的結(jié)果仍然是一個序列。在形式上,切片使用2個冒號分隔的3個數(shù)字來完成,語法格式如下所示。[start:end:step]其中,第一個數(shù)字start表示切片開始位置,默認為0;第二個數(shù)字end表示切片截止(不包含)位置(默認為列表長度);第三個數(shù)字step表示切片的步長(默認為1)。當(dāng)start為0時可以省略,當(dāng)end為列表長度時可以省略,當(dāng)step為1時可以省略,省略步長時還可以同時省略最后一個冒號。當(dāng)step為負整數(shù)時,表示反向切片,這時start應(yīng)該在end的右側(cè)?!窘處煛垦菔纠?-4程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解三、列表的遍歷【教師】講解Python中的列表的遍歷為了能更有效地逐一輸出列表中的元素,可以使用while或for循環(huán)來遍歷列表。1、使用for循環(huán)遍歷列表使用for循環(huán)遍歷列表,只需將要遍歷的列表作為for循環(huán)表達式中的序列即可。【教師】演示例4-6程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解2、使用while循環(huán)遍歷列表使用while循環(huán)遍歷列表,首先須獲取列表的長度,將其作為while循環(huán)的判斷條件?!窘處煛垦菔纠?-7程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的輸出結(jié)果是_________。forxin[0,1,2,3,4]:ifx>=3:breakprint(x,end='')(2)以下程序的輸出結(jié)果是_________。a=[1,2,3,4,5,6,7,8,9]s=0forcina:s+=cprint(s)【學(xué)生】完成題目【教師】隨機點名回答通過教師的講解和演示,使學(xué)生了解Python中的列表的使用任務(wù)實施(15min)【教師】帶領(lǐng)學(xué)生完成任務(wù)一?【教師】提出任務(wù)“單絲不成線,獨木不成林”,團隊的力量是巨大的,團隊合作可以完成個人無法獨立承擔(dān)的大項目。通常一個項目的成功實施需要多位成員進行團隊合作共同完成。如果你是項目發(fā)起人,你會邀請誰?在項目組建實施過程中,有些受邀人由于各種原因可能無法參加,也可能出現(xiàn)項目功能增多或者資金不足等情況,導(dǎo)致受邀人員變化,這就需要團隊調(diào)整邀請名單。本任務(wù)將帶領(lǐng)大家編寫Python程序,利用列表實現(xiàn)具有修改邀請人員、發(fā)出邀請等功能的邀請同學(xué)共建項目程序?!緦W(xué)生】思考、討論一、進行任務(wù)分析:完成本任務(wù)須進行以下步驟。步驟一:邀請。如果你想要邀請任何同學(xué)共同完成一個項目,你會邀請誰?這里需要創(chuàng)建一個列表guests,存儲3位受邀人名字;然后使用這個列表打印出邀請消息。步驟二:修改。當(dāng)受邀人無法參與項目時,需要另外邀請一位同學(xué)。以“步驟一”編寫的程序為基礎(chǔ),在程序末尾添加一條輸出語句,說明哪位同學(xué)無法參與。修改邀請名單,用新邀請者的姓名代替無法參加者的姓名,并再次打印邀請消息,向名單中的同學(xué)發(fā)出邀請。步驟三:添加。由于項目功能增多,可以邀請更多的同學(xué)參與。請想想你還可以邀請哪三位同學(xué)。以上述步驟為基礎(chǔ),在程序末尾添加一條輸出語句,指出項目需要更多的同學(xué)。使用insert()函數(shù)分別將三位嘉賓添加到名單開頭、中間和末尾。最后再次打印邀請消息,向名單中的同學(xué)發(fā)出邀請。步驟四:縮減。你剛得知項目因為資金不足需要縮小團隊規(guī)模,因此只能邀請兩位同學(xué)。以上述步驟編寫的程序為基礎(chǔ),在程序末尾添加一條輸出語句,說明你只能邀請兩位同學(xué)的消息。使用pop()函數(shù)不斷刪除名單中的同學(xué),直到只有兩位同學(xué)為止。每次從名單中彈出一位同學(xué)時,打印一條消息,讓該同學(xué)知悉你很抱歉。對于余下的兩位同學(xué)中的每一位,都打印一條消息,指出他依然在受邀人之列。最后使用del()函數(shù)將名單中的兩位同學(xué)刪除,讓名單變成空的。打印該名單,核實程序結(jié)束時名單確實是空的。。二、參考代碼:guests=["XiaoMing","XiaoWang","XiaoLi","XiaoZhang"]forguestinguests:print(guest+",我可以邀請你一起完成項目嗎?")print(guests[2]+"不能一起完成項目!"+"\n")guests[2]='Jack'forguestinguests:print(guest+",我可以邀請你一起完成項目嗎?")print("我們的項目需要更多的人!"+"\n")guests.insert(0,'ZhangSan')guests.insert(3,'LiSi')guests.append('WangWu')forguestinguests:print(guest+",我可以邀請你一起完成項目嗎?")print("sorry,我只能邀請兩位同學(xué)完成項目!"+"\n")whilelen(guests)>2:honored=guests.pop()print(honored+",很抱歉,我們不能一起完成項目!")print("------------")forguestinguests:print(guest+",我仍然希望你能和我一起完成項目!")delguests[0]delguests[0]print(guests)代碼運行四、代碼分析(主要代碼)【學(xué)生】聆聽、記錄、理解通過任務(wù)實施環(huán)節(jié),讓學(xué)生將所學(xué)知識與實踐相結(jié)合,培養(yǎng)學(xué)生的實操能力實操練習(xí)(15min)【教師】布置任務(wù)【教師】巡堂輔導(dǎo),及時解決學(xué)生遇到的問題;安排每組做得最快、最好的學(xué)生輔導(dǎo)其他學(xué)生進行操作,并解答其遇到的問題【學(xué)生】對比自己的繪制結(jié)果,若繪制有誤,查找并記錄原因通過實操練習(xí)使學(xué)生鞏固所學(xué)知識,并以學(xué)生為主體,針對學(xué)生接受能力的差異性,讓優(yōu)秀學(xué)生帶動其他學(xué)生掌握知識課堂小結(jié)

(3min)【教師】簡要總結(jié)本節(jié)課的要點利用所學(xué)列表知識實現(xiàn)具有修改邀請人員、發(fā)出邀請等功能的邀請同學(xué)共建項目程序?!緦W(xué)生】總結(jié)回顧知識點總結(jié)知識點,鞏固學(xué)生對Python中的列表相關(guān)知識的印象作業(yè)布置

(2min)【教師】布置課后作業(yè)利用本節(jié)課所學(xué)知識點實現(xiàn)具有修改邀請人員、發(fā)出邀請等功能的邀請同學(xué)共建項目程序,并檢查運行結(jié)果是否正確?!緦W(xué)生】完成課后任務(wù)通過課后作業(yè)復(fù)習(xí)鞏固學(xué)到的知識,提高實際操作能力教學(xué)反思本次課講授的主要是Python中的列表知識點,通過知識點的學(xué)習(xí)和實踐,讓學(xué)生對Python數(shù)據(jù)容器有了更深入的了解,進一步提高了對Python知識的掌握程度,學(xué)生對本次課的學(xué)習(xí)興趣也很高,取得了不錯的教學(xué)效果。但由于課下練習(xí)較少,編程不太熟練,以后要繼續(xù)加強實操部分的練習(xí)。教學(xué)內(nèi)容

輸出鍵盤上的相鄰字母教學(xué)目標(biāo)素質(zhì)目標(biāo):培養(yǎng)團隊互助,合作共贏的精神。知識目標(biāo):掌握元組的使用方法。掌握元組的循環(huán)遍歷。能力目標(biāo):能夠定義元組實現(xiàn)鍵盤上相鄰字母輸出問題。能舉一反三,選擇恰當(dāng)?shù)臄?shù)據(jù)容器編程解決實際問題。教學(xué)重難點教學(xué)重點:Python中元組的相關(guān)語法。教學(xué)難點:Python中元組的應(yīng)用。教學(xué)方法案例分析法、問答法、討論法、講授法、實訓(xùn)法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖課前任務(wù)【教師】布置課前任務(wù),提醒同學(xué)通過學(xué)習(xí)軟件,完成課前任務(wù)請大家自行搜集資料了解元組,并且預(yù)習(xí)本任務(wù)需要的相關(guān)知識點?!緦W(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生了解本次課的重要性,增加學(xué)生的學(xué)習(xí)興趣考勤

(2min)【教師】清點上課人數(shù),記錄好考勤【學(xué)生】班干部交假條培養(yǎng)學(xué)生的組織紀律性,掌握學(xué)生的出勤情況新課預(yù)熱

(10min)【教師】與學(xué)生簡單互動,復(fù)習(xí)回顧上次課的內(nèi)容等【學(xué)生】聆聽、互動通過老師與學(xué)生的互動,并讓學(xué)生了解這次課的知識點大致要求問題導(dǎo)入(5min)【教師】提出以下問題:大家在之前學(xué)過列表的概念,可以簡述一下列表是什么?都有哪些特性?【學(xué)生】思考、舉手回答【教師】通過學(xué)生的回答引入要講的知識通過問題導(dǎo)入的方法,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知

(30min)元組【教師】講解Python中的元組Python的元組(tuple)與列表類似,不同之處在于不能修改元組的元素,元組使用圓括號包含元素,而列表使用方括號包含元素。1、元組的創(chuàng)建和訪問1)創(chuàng)建元組創(chuàng)建元組常用的方法是將逗號分隔的不同元素用圓括號括起來,也可省略圓括號,直接使用逗號分隔元素。例如:x=('a','b',1,2,3) #創(chuàng)建元組xprint(x) #輸出x,結(jié)果為('a','b',1,2,3)y='a','b','c','d' #創(chuàng)建元組y時省略了圓括號print(y) #輸出y,結(jié)果為('a','b','c','d')如果要定義一個空元組,可以使用沒有元素的圓括號來表示。例如:x=() #創(chuàng)建空元組xprint(x) #輸出x,結(jié)果為()【教師】強調(diào)以下問題Python在定義只有1個元素的元組時,在元素后面必須加一個逗號“,”。例如:x=(1,) #創(chuàng)建只有一個元素的元組xprint(x) #輸出x,結(jié)果為(1,)這是因為圓括號既可以表示元組,又可以表示數(shù)學(xué)公式中的小括號,如果沒有逗號將會產(chǎn)生歧義。例如,“x=(1)”中按小括號進行計算,因此計算結(jié)果為1,而不是元組。【教師】小拓展tuple()函數(shù)可將序列轉(zhuǎn)換為元組,參數(shù)為序列。如果參數(shù)本身是元組,則原樣返回該參數(shù)。例如:tuple([1,2,3]) #將列表轉(zhuǎn)換為元組,結(jié)果為(1,2,3)tuple('abc') #將字符串轉(zhuǎn)換為元組,結(jié)果為('a','b','c')tuple((1,2,3)) #參數(shù)為元組,結(jié)果為(1,2,3)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運行結(jié)果是_______。Language=("C","C++","C#","Java","Python")print(Language[1])【學(xué)生】完成題目【教師】隨機點名回答2)訪問元組與列表類似,可以使用下標(biāo)索引來訪問元組中的元素。例如:x=('a',1,3.14) #創(chuàng)建元組xprint(x[0]) #輸出索引為0的元素,結(jié)果為“a”print(x[1]) #輸出索引為1的元素,結(jié)果為1print(x[-1]) #輸出索引為-1的元素,結(jié)果為3.14【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運行結(jié)果是________。Language_1=("C","C++","C#")Language_2=("Java","Python")print(Language_1+Language_2)(2)以下程序的運行結(jié)果是________。str="Welcometobeijing"print(tuple(str))(3)以下程序的運行結(jié)果是_________。Is=(int('10'),"10",10,2*5)print(Is.index(10),Is.count(10))【學(xué)生】完成題目【教師】隨機點名回答2、元組的合并和遍歷由于元組是不可變序列,所以元組無法執(zhí)行某些操作,如添加、修改和刪除等。1)合并元組元組中的元素值是不允許修改的,但可以對元組進行連接組合。例如:x=(1,2,3) #創(chuàng)建元組xy=('a','b') #創(chuàng)建元組yz=x+y #將x和y進行連接組合后賦給zprint(z) #輸出z,結(jié)果為(1,2,3,'a','b')【教師】小拓展zip()函數(shù)將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的zip對象。例如:list_str=['a','b','c','d'] #創(chuàng)建列表并賦值list_num=[1,2,3,4] #創(chuàng)建列表并賦值list_new=zip(list_str,list_num) #打包為元組組成的zip對象#用list()函數(shù)轉(zhuǎn)換為列表輸出,結(jié)果為[('a',1),('b',2),('c',3),('d',4)]print(list(list_new))【學(xué)生】聆聽、記錄、理解2)遍歷元組與列表一樣,也可以使用while和for循環(huán)來遍歷元組中的所有元素?!窘處煛垦菔臼纠绦颉緦W(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運行結(jié)果是________。list=("蘋果","梨","香蕉","李子","橙子","菠蘿")forfruitinlist:print(fruit,end='')(2)以下程序的運行結(jié)果是________。foriin("Goaheadbravely"):ifi=="b":breakelse:print(i,end="")【學(xué)生】完成題目【教師】隨機點名回答通過教師的講解和演示,使學(xué)生了解Python中的元組的使用任務(wù)實施(15min)【教師】帶領(lǐng)學(xué)生完成任務(wù)二?【教師】提出任務(wù)知識是用來解決生活問題的工具,使用工具的使用才是解決實際問題的關(guān)鍵。鍵盤是常常用來輸入字符和數(shù)字的工具,為了更好地了解并進行使用,鍵盤上的鍵位是我們必須要熟悉的。本任務(wù)將帶領(lǐng)大家編寫Python程序,利用元組保存鍵盤上的字母,根據(jù)輸入計算機鍵盤上任意一個字母,輸出鍵盤上的相鄰字母。若這個字符左邊或者右邊沒有字母時,輸出'*'?!緦W(xué)生】思考、討論一、進行任務(wù)分析:完成本任務(wù)需進行以下步驟。1.利用input()方法接收用戶通過鍵盤輸入的字母。2.定義元組,由于鍵盤上的字母排序固定,因此可以選擇元組來保存數(shù)據(jù)。3.使用index()方法獲取輸入的字母在元組中首次出現(xiàn)的下標(biāo),進行定位輸出,輸出相鄰的元素。二、參考代碼:x=input("請輸入計算機鍵盤上任意一個字母:")tp=tuple("*QWERTYUIOP*ASDFGHJKL*ZXCVBNM*")#定義元組,存儲鍵盤上的字母n=tp.index(x)print("鍵盤上相鄰的字母是:")print(tp[n-1],tp[n+1])三、代碼運行四、代碼分析(主要代碼):【學(xué)生】聆聽、記錄、理解通過任務(wù)實施環(huán)節(jié),讓學(xué)生將所學(xué)知識與實踐相結(jié)合,培養(yǎng)學(xué)生的實操能力實操練習(xí)(15min)【教師】布置任務(wù)【教師】巡堂輔導(dǎo),及時解決學(xué)生遇到的問題;安排每組做得最快、最好的學(xué)生輔導(dǎo)其他學(xué)生進行操作,并解答其遇到的問題【學(xué)生】對比自己的繪制結(jié)果,若繪制有誤,查找并記錄原因通過實操練習(xí)使學(xué)生鞏固所學(xué)知識,并以學(xué)生為主體,針對學(xué)生接受能力的差異性,讓優(yōu)秀學(xué)生帶動其他學(xué)生掌握知識課堂小結(jié)

(3min)【教師】簡要總結(jié)本節(jié)課的要點利用,利用元組保存鍵盤上的字母,根據(jù)輸入,輸出相應(yīng)的結(jié)果,即鍵盤上相鄰的字母。【學(xué)生】總結(jié)回顧知識點總結(jié)知識點,鞏固學(xué)生對Python中的元組相關(guān)知識的印象作業(yè)布置

(2min)【教師】布置課后作業(yè)利用本節(jié)課所學(xué)知識點,用元組保存鍵盤上的字母,根據(jù)輸入,輸出相應(yīng)的結(jié)果,即鍵盤上相鄰的字母,并檢查運行結(jié)果是否正確?!緦W(xué)生】完成課后任務(wù)通過課后作業(yè)復(fù)習(xí)鞏固學(xué)到的知識,提高實際操作能力教學(xué)反思本次課講授的主要是Python中的元組知識點,通過知識點的學(xué)習(xí)和實踐,讓學(xué)生對Python數(shù)據(jù)容器有了更深入的了解,進一步提高了對Python知識的掌握程度,學(xué)生對本次課的學(xué)習(xí)興趣也很高,取得了不錯的教學(xué)效果。但由于課下練習(xí)較少,編程不太熟練,以后要繼續(xù)加強實操部分的練習(xí)。

教學(xué)內(nèi)容設(shè)計商品倉庫教學(xué)目標(biāo)素質(zhì)目標(biāo):養(yǎng)成溫故知新的習(xí)慣。知識目標(biāo):掌握什么是字典以及字典的常見操作。能力目標(biāo):能夠利用字典設(shè)計商品倉庫,實現(xiàn)查找商品的功能。能舉一反三,選擇恰當(dāng)?shù)臄?shù)據(jù)容器編程解決實際問題。教學(xué)重難點教學(xué)重點:Python中字典的相關(guān)語法;Python中字典的創(chuàng)建、訪問、遍歷和基本操作方法。教學(xué)難點:Python中字典的應(yīng)用。教學(xué)方法案例分析法、問答法、討論法、講授法、實訓(xùn)法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖課前任務(wù)【教師】布置課前任務(wù),提醒同學(xué)通過學(xué)習(xí)軟件,完成課前任務(wù)請大家預(yù)習(xí)本任務(wù)需要的相關(guān)知識點?!緦W(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生了解本次課的重要性,增加學(xué)生的學(xué)習(xí)興趣考勤

(2min)【教師】清點上課人數(shù),記錄好考勤【學(xué)生】班干部交假條培養(yǎng)學(xué)生的組織紀律性,掌握學(xué)生的出勤情況新課預(yù)熱

(10min)【教師】與學(xué)生簡單互動,復(fù)習(xí)回顧上次課的內(nèi)容等【學(xué)生】聆聽、互動【教師】概括本次課總體學(xué)習(xí)內(nèi)容,讓學(xué)生大體了解本次課學(xué)習(xí)內(nèi)容字典是Python中常用的一種數(shù)據(jù)存儲結(jié)構(gòu),它由“鍵-值”對組成,表示一種映射關(guān)系,每個“鍵-值”對稱為一個元素。其中,“鍵”可以是Python中任意不可變數(shù)據(jù)類型,如數(shù)字、字符串、元組等,但不能是列表、集合、字典等可變數(shù)據(jù)類型;“值”可以是任意數(shù)據(jù)類型。通過老師與學(xué)生的互動,并讓學(xué)生了解這次課的知識點大致要求問題導(dǎo)入(5min)【教師】提出以下問題:大家有了解過Python中的字典嗎?字典與之前C語言課中學(xué)的有什么不同?【學(xué)生】思考、舉手回答【教師】通過學(xué)生的回答引入要講的知識通過問題導(dǎo)入的方法,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知

(30min)一、字典的創(chuàng)建【教師】講解Python中的字典的創(chuàng)建在Python中,字典定義的語法格式如下所示。字典對象=[鍵1:值1,鍵2:值2,…,鍵n:值n]字典對于值的類型,并沒有過多的限制,但是鍵的類型必須是數(shù)字、字符串或元組等不可變類型。一個空字典可以用一對花括號"{}"表示,也可以用dict()函數(shù)創(chuàng)建。【學(xué)生】聆聽、記錄、理解【教師】強調(diào)以下問題字典中的“鍵”是唯一的,創(chuàng)建字典時若出現(xiàn)“鍵”相同的情況,則后定義的“鍵-值”對將覆蓋先定義的“鍵-值”對。例如:x={'a':1,'b':2,'b':'3'} #直接賦值創(chuàng)建字典xprint(x) #輸出字典x,結(jié)果為{'a':1,'b':'3'}【教師】演示例4-13,例4-14,例4-15程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目以下程序的運行結(jié)果是________。person={'身份證號':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)',}person['居住地']='北京市通州區(qū)' #修改居住地 person['電話'] #增加電話print(person)【學(xué)生】完成題目【教師】隨機點名回答二、字典的訪問【教師】講解Python中的字典的訪問1、根據(jù)鍵訪問值字典中的“鍵”可作為下標(biāo)訪問對應(yīng)的“值”,如果字典中不存在這個“鍵”則會拋出異常,其語法格式如下。dict[key]其中,dict表示字典名,key表示要查找的鍵?!緦W(xué)生】聆聽、記錄、理解2、使用get()方法訪問值在訪問字典時,若不確定字典中是否有某個鍵,可通過get()方法獲取,若該鍵存在,則返回其對應(yīng)的值,若不存在,則返回默認值,其語法格式如下。dict.get(key[,default=None])其中,dict表示字典名;key表示要查找的鍵;default表示默認值,如果指定鍵的值不存在,返回該默認值,當(dāng)default缺省時,返回None?!窘處煛垦菔纠?-17程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解三、字典的基本操作【教師】講解Python中的字典的基本操作與列表相似,Python也提供了大量方法用于字典元素的修改、添加、刪除、更新、復(fù)制等操作。1、修改和添加元素當(dāng)以指定“鍵”為下標(biāo)給字典元素賦值時,有下面兩種含義。(1)若該“鍵”在字典中存在,則表示修改該“鍵”對應(yīng)的值。(2)若該“鍵”不存在,則表示添加一個新的“鍵-值”對,即添加一個新元素到字典中?!緦W(xué)生】聆聽、記錄、理解2、刪除元素要刪除字典中的元素或整個字典,可以使用del命令、clear()方法、pop()方法或popitem()方法。(1)del命令:根據(jù)“鍵”刪除字典中的元素,(2)clear()方法:刪除字典中的所有元素,其語法格式如下。dict.clear()其中,dict表示字典名。該方法不包含任何參數(shù),也沒有返回值。(3)pop()方法:刪除指定的“鍵-值”對,并返回該“鍵”的值,其語法格式如下。dict.pop(key[,default])其中,dict表示字典名;key表示刪除的鍵;default是默認值,當(dāng)字典中沒有要刪除的key時,該方法返回指定的默認值。(4)popitem()方法:隨機刪除并返回一個“鍵-值”對,其語法格式如下。dict.popitem()其中,dict表示字典名。該方法無參數(shù),返回值為一個隨機的“鍵-值”對?!緦W(xué)生】聆聽、記錄、理解【教師】布置題目以下程序的運行結(jié)果是_________。person={'身份證號':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)','電話':}delperson['電話'] #刪除電話print(person)person.popitem() #隨機刪除元素print(person)【學(xué)生】完成題目【教師】隨機點名回答3、更新字典update()方法用于將新字典的“鍵-值”對一次性全部添加到當(dāng)前字典中,如果兩個字典中存在相同的“鍵”,則以新字典中的“值”更新當(dāng)前字典,其語法格式如下。dict.update(dict1)其中,dict表示當(dāng)前字典,dict1表示新字典。4、復(fù)制字典復(fù)制字典可使用copy()方法,返回字典的淺復(fù)制,其語法格式如下。dict.copy()其中,dict表示需要復(fù)制的字典,該方法無參數(shù),返回一個新字典?!窘處煛啃⊥卣乖赑ython中,可使用3種方法復(fù)制字典:直接賦值、淺復(fù)制和深復(fù)制。(1)直接賦值:復(fù)制對象的引用。(2)淺復(fù)制:使用copy()方法復(fù)制父對象及其子對象的引用。(3)深復(fù)制:使用deepcopy()方法完全復(fù)制父對象及其子對象,此方法包含在copy模塊中。【教師】布置題目以下程序的運行結(jié)果是________。family_age={"grandmather":65,"grandfather":68,"mather":38,"father":38,"child":10}old=family_age["grandmather"]print("grandmotheris"+str(old)+".")【學(xué)生】完成題目【教師】隨機點名回答四、字典的遍歷【教師】講解Python中字典的遍歷當(dāng)字典包含大量元素時,可使用遍歷的方法對元素進行訪問,遍歷字典有以下3種方法。1、遍歷字典中所有的“鍵-值”對使用item()方法可遍歷字典中所有的“鍵-值”對,該方法以dict_items形式返回可遍歷的“(鍵,值)”元組,其語法格式如下。dict.items()其中,dict表示字典?!緦W(xué)生】聆聽、記錄、理解2、遍歷字典中所有的鍵當(dāng)不需要使用字典中的值時,可使用keys()方法只遍歷字典中的鍵,該方法以dict_keys形式返回字典中所有的鍵,其語法格式如下。dict.keys()其中,dict表示字典名?!緦W(xué)生】聆聽、記錄、理解3、遍歷字典中所有的值當(dāng)只需要使用字典中的值時,可使用values()方法,該方法以dict_values形式返回字典中所有的值,其語法格式如下。dict.values()其中,dict表示字典名?!窘處煛繌娬{(diào)以下問題dict_items、dict_keys和dict_values是Python的內(nèi)部數(shù)據(jù)類型,專用于表示字典的鍵值對、鍵和值,可使用list()函數(shù)將其轉(zhuǎn)換為列表?!窘處煛垦菔纠?-18至例4-21程序【學(xué)生】觀察運行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運行結(jié)果是_______。stu_class={'趙':'優(yōu)','錢':'良','孫':'中','李':'及格'}forname,reportinstu_class.items():print(name,'的成績是',report)(2)以下程序的運行結(jié)果是______。family_love={"grandmather":"dancing","grandfather":"computer","mather":"readingbook","father":"cooking","child":"playingpingpang"}formember,hobbyinfamily_love.items():print(member.title()+"."+hobby)【學(xué)生】完成題目【教師】隨機點名回答通過教師的講解和演示,使學(xué)生了解Python中的字典的使用任務(wù)實施(15min)【教師】帶領(lǐng)學(xué)生完成任務(wù)三?【教師】提出任務(wù)生活中,字典是一本特殊的書,它按字母順序列出一種語言的單詞,解釋它們的意思,并提供關(guān)于一個單詞的許多其他信息。類似的,在Python中,我們也可以使用字典通過“字”來查找其對應(yīng)的“含義”。恰當(dāng)利用計算機工具,可以幫助我們提高查找效率。例如在購物時,頁面上會顯示商品列表,根據(jù)用戶輸入的商品序號,頁面上顯示相應(yīng)的商品名稱。本任務(wù)將帶領(lǐng)大家編寫Python程序,利用字典設(shè)計“商品倉庫”提高查找商品的效率,并在用戶輸入Q或q時,退出程序。一、進行任務(wù)分析:本任務(wù)中“商品倉庫”的商品描述具有映射關(guān)系,因此可以使用字典數(shù)據(jù)容器來存儲。完成本任務(wù)須執(zhí)行以下步驟。1.定義字典變量goods保存商品編號和對應(yīng)商品名。2.定義列表變量num用來保存查找到的商品名。3.利用while語句循環(huán)輸出商品編號和商品名,并接收鍵盤輸入值。4.利用isdigit()方法檢測字符串是否只由數(shù)字組成。如果是,則進一步判斷數(shù)字的合法性,若輸入的數(shù)字在范圍內(nèi),則輸出相應(yīng)的值,并將其添加到列表中,否則給出錯誤提醒;如果不是,判斷輸入是否為q或Q,進而輸出列表值并判斷是否退出程序;其他情況均提示輸入格式有誤。二、參考代碼:goods={'1':'大米','2':'香油','3':'小米','4':'食鹽','5':'味精'}num=[]whiletrue:fori,vingoods.items():print(i,v)a=input("輸入你想要的產(chǎn)品[輸入q則退出]:")ifa.isdigit():ifa>i:print("輸入的內(nèi)容有誤,請重新輸入!")else:print(goods[a])num.append(goods[a])elifa.upper()=="Q":print(num)exit("退出")else:print("輸入的格式錯誤")三、代碼運行四、代碼分析(主要代碼):【學(xué)生】聆聽、記錄、理解通過任務(wù)實施環(huán)節(jié),讓學(xué)生將所學(xué)知識與實踐相結(jié)合,培養(yǎng)學(xué)生的實操能力實操練習(xí)(15min)【教師】布置任務(wù)編寫程序(1)創(chuàng)建一個商品庫存字典,字典記錄3種商品的信息,商品編號為鍵,商品名稱和庫存量用列表形式表示,創(chuàng)建完成后輸出每種商品的編號、名稱和庫存量信息?!窘處煛垦蔡幂o導(dǎo),及時解決學(xué)生遇到的問題;安排每組做得最快、最好的學(xué)生輔導(dǎo)其他學(xué)生進行操作,并解答其遇到的問題【學(xué)生】對比自己的繪制結(jié)果,若繪制有誤,查找并記錄原因通過實操練習(xí)使學(xué)生鞏固所學(xué)知識,并以學(xué)生為主體,針對學(xué)生接受能力的差異性,讓優(yōu)秀學(xué)生帶動其他學(xué)生掌握知識課堂小結(jié)

(3min)【教師】簡要總結(jié)本節(jié)課的要點利用所學(xué)字典知識設(shè)計“商品倉庫”?!緦W(xué)生】總結(jié)回顧知識點總結(jié)知識點,鞏固學(xué)生對Python中的字典相關(guān)知識的印象作業(yè)布置

(2min)【教師】布置課后作業(yè)利用本節(jié)課所學(xué)知識點自己設(shè)計“商品倉庫”。【學(xué)生】完成課后任務(wù)通過課后作業(yè)復(fù)習(xí)鞏固學(xué)到的知識,提高實際操作能力教學(xué)反思本次課講授的主要是Python中的字典知識點,通過知識點的學(xué)習(xí)和實踐,讓學(xué)生對Python數(shù)據(jù)容器有了更深入的了解,進一步提高了對Python知識的掌握程度,學(xué)生對本次課的學(xué)習(xí)興趣也很高,取得了不錯的教學(xué)效果。但由于課下練習(xí)較少,編程不太熟練,以后要繼續(xù)加強實操部分的練習(xí)。

教學(xué)內(nèi)容實現(xiàn)問卷調(diào)查教學(xué)目標(biāo)素質(zhì)目標(biāo):貫徹互助共享的精神,感受編寫程序?qū)崿F(xiàn)與生活的聯(lián)系,進一步體會編程服務(wù)于生活的好處。知識目標(biāo):掌握什么是集合以及集合的常見操作。能力目標(biāo):能夠定義集合實現(xiàn)問卷調(diào)查活動程序。能舉一反三,選擇恰當(dāng)?shù)臄?shù)據(jù)容器編程解決實際問題。教學(xué)重難點教學(xué)重點:Python中集合的相關(guān)語法。教學(xué)難點:Python中集合的應(yīng)用。教學(xué)方法案例分析法、問答法、討論法、講授法、實訓(xùn)法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖課前任務(wù)【教師】布置課前任務(wù),提醒同學(xué)通過學(xué)習(xí)軟件,完成課前任務(wù)請大家自行搜集資料了解集合,并且預(yù)習(xí)本任務(wù)需要的相關(guān)知識點。【學(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生了解本次課的重要性,增加學(xué)生的學(xué)習(xí)興趣考勤

(2min)【教師】清點上課人數(shù),記錄好考勤【學(xué)生】班干部交假條培養(yǎng)學(xué)生的組織紀律性,掌握學(xué)生的出勤情況新課預(yù)熱

(10min)【教師】與學(xué)生簡單互動,復(fù)習(xí)回顧上次課的內(nèi)容等【學(xué)生】聆聽、互動通過老師與學(xué)生的互動,并讓學(xué)生了解這次課的知識點大致要求問題導(dǎo)入(5min)【教師】提出以下問題:大家在數(shù)學(xué)課程中學(xué)過集合的概念,可以簡述一下集合是什么?都有哪些特性?【學(xué)生】思考、舉手回答【教師】通過學(xué)生的回答引入要講的知識通過問題導(dǎo)入的方法,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知

(30min)集合【教師】講解Python中的集合集合與其他數(shù)據(jù)類型最大的不同在于它不包含重復(fù)元素,即集合元素是獨一無二的。因此,當(dāng)需要對一維數(shù)據(jù)進行去重處理時,一般可通過集合來完成。1、集合的創(chuàng)建創(chuàng)建集合只需將逗號分隔的不同元素使用大括號括起來即可。例如:a={1,2,3,4} #創(chuàng)建集合并賦值print(a) #輸出集合a,結(jié)果為{1,2,3,4}b={2,1,3,4,1,2} #創(chuàng)建集合并賦值print(b) #輸出集合b,結(jié)果為{1,2,3,4}由上述代碼可以看出,由于集合元素是無序的,所以集合的輸出結(jié)果與定義順序可能不一致。【教師】小拓展還可以使用set()函數(shù)將列表、元組等其他類型的數(shù)據(jù)轉(zhuǎn)換為集合,如果原來的數(shù)據(jù)中存在重復(fù)元素,則在轉(zhuǎn)換為集合時會自動去重。例如:x=set('runoob') #將字符串轉(zhuǎn)換為集合print(x) #輸出集合x,結(jié)果為{'o','u','n','b','r'}y=set(['g','o','o','g','l','e']) #將列表轉(zhuǎn)換為集合print(y) #輸出集合y,結(jié)果為{'g','o','e','l'}z=set() #空集合print(z) #輸出集合z,結(jié)果為set()【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序用于實現(xiàn),輸入一個水果名,判斷該水果是否在水果的集合中,若沒有將它添加到水果集合中,并輸出該集合,請?zhí)羁帐钩绦蛲暾ruits={"蘋果","梨","香蕉","李子","橙子","菠蘿"}fruit_1=input("請輸入水果名:")_________________________print(fruits)【學(xué)生】完成題目【教師】隨機點名回答2、集合的基本操作1)添加和刪除元素與字典類似,Python也提供了多種函數(shù)和方法用于集合元素的

溫馨提示

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

評論

0/150

提交評論