《Python編程案例教程》786-3(韓?;ǎ┙贪?項(xiàng)目四 Python第十一次課教案_第1頁(yè)
《Python編程案例教程》786-3(韓?;ǎ┙贪?項(xiàng)目四 Python第十一次課教案_第2頁(yè)
《Python編程案例教程》786-3(韓?;ǎ┙贪?項(xiàng)目四 Python第十一次課教案_第3頁(yè)
《Python編程案例教程》786-3(韓?;ǎ┙贪?項(xiàng)目四 Python第十一次課教案_第4頁(yè)
《Python編程案例教程》786-3(韓?;ǎ┙贪?項(xiàng)目四 Python第十一次課教案_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE10PAGE10PAGE9PAGE9《Python編程基礎(chǔ)知識(shí)》

教案課時(shí)分配表章序課程內(nèi)容課時(shí)備注1文檔處理122電子表格處理83演示文稿制作44信息檢索65新一代信息技術(shù)概述106信息素養(yǎng)與社會(huì)責(zé)任8合計(jì)48文旌課堂APP

課題數(shù)據(jù)容器(三)——開發(fā)“詩(shī)詞大會(huì)”游戲課時(shí)2課時(shí)(90min)教學(xué)目標(biāo)知識(shí)技能目標(biāo):(1)掌握字典的創(chuàng)建、訪問(wèn)、遍歷和基本操作方法。思政育人目標(biāo):(1)提高選擇合適方法解決不同問(wèn)題的能力。(2)將中華傳統(tǒng)文化融入編程案例中,增強(qiáng)感受詩(shī)詞之美、詩(shī)詞之趣的能力。教學(xué)重難點(diǎn)教學(xué)重點(diǎn):Python中字典的相關(guān)語(yǔ)法;Python中字典的創(chuàng)建、訪問(wèn)、遍歷和基本操作方法。教學(xué)難點(diǎn):Python中字典的應(yīng)用。教學(xué)方法案例分析法、問(wèn)答法、討論法、講授法、實(shí)訓(xùn)法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計(jì)教學(xué)過(guò)程主要教學(xué)內(nèi)容及步驟設(shè)計(jì)意圖課前任務(wù)【教師】布置課前任務(wù),提醒同學(xué)通過(guò)文旌課堂APP或其他學(xué)習(xí)軟件,完成課前任務(wù)請(qǐng)大家自行搜集資料查詢“詩(shī)詞大會(huì)”都是什么形式的,并且預(yù)習(xí)本任務(wù)需要的相關(guān)知識(shí)點(diǎn)?!緦W(xué)生】完成課前任務(wù)通過(guò)課前任務(wù),使學(xué)生了解本次課的重要性,增加學(xué)生的學(xué)習(xí)興趣考勤

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

(10min)【教師】與學(xué)生簡(jiǎn)單互動(dòng),復(fù)習(xí)回顧上次課的內(nèi)容等【學(xué)生】聆聽、互動(dòng)【教師】課外拓展講解詩(shī)詞之美《中國(guó)詩(shī)詞大會(huì)》是繼《中國(guó)漢字聽寫大會(huì)》《中國(guó)成語(yǔ)大會(huì)》《中國(guó)謎語(yǔ)大會(huì)》之后,為貫徹落實(shí)習(xí)近平總書記關(guān)于弘揚(yáng)中華優(yōu)秀傳統(tǒng)文化的指示精神,為讓古代經(jīng)典詩(shī)詞,深深印在國(guó)民大眾的腦子里,成為“中華民族文化基因”,而由央視科教頻道推出的一檔文化類演播益智競(jìng)賽節(jié)目?!吨袊?guó)詩(shī)詞大會(huì)》以“賞中華詩(shī)詞,尋文化基因,品生活之美”為宗旨,通過(guò)演播室比賽的形式,重溫經(jīng)典詩(shī)詞,繼承和發(fā)揚(yáng)中華優(yōu)秀傳統(tǒng)文化,帶動(dòng)全民重溫那些曾經(jīng)學(xué)過(guò)的古詩(shī)詞,分享詩(shī)詞之美,感受詩(shī)詞之趣?!窘處煛扛爬ū敬握n總體學(xué)習(xí)內(nèi)容,讓學(xué)生大體了解本次課學(xué)習(xí)內(nèi)容字典是Python中常用的一種數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),它由“鍵-值”對(duì)組成,表示一種映射關(guān)系,每個(gè)“鍵-值”對(duì)稱為一個(gè)元素。其中,“鍵”可以是Python中任意不可變數(shù)據(jù)類型,如數(shù)字、字符串、元組等,但不能是列表、集合、字典等可變數(shù)據(jù)類型;“值”可以是任意數(shù)據(jù)類型。通過(guò)老師與學(xué)生的互動(dòng),并讓學(xué)生了解這次課的知識(shí)點(diǎn)大致要求問(wèn)題導(dǎo)入(5min)【教師】提出以下問(wèn)題:大家有了解過(guò)Python中的字典嗎?字典與之前C語(yǔ)言課中學(xué)的有什么不同?【學(xué)生】思考、舉手回答【教師】通過(guò)學(xué)生的回答引入要講的知識(shí)通過(guò)問(wèn)題導(dǎo)入的方法,引導(dǎo)學(xué)生主動(dòng)思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知

(30min)一、字典的創(chuàng)建【教師】講解Python中的字典的創(chuàng)建1、直接賦值創(chuàng)建字典直接賦值創(chuàng)建字典的語(yǔ)法格式如下。變量名={鍵1:值1,鍵2:值2,鍵3:值3,……}字典的元素放在大括號(hào)中,元素之間用逗號(hào)分隔,“鍵”與“值”之間用冒號(hào)分隔。例如,創(chuàng)建一個(gè)學(xué)生信息字典,包括學(xué)生學(xué)號(hào)、姓名和年齡3個(gè)元素,可以用下面代碼實(shí)現(xiàn)。#創(chuàng)建字典stu_infostu_info={'num':'20210101','name':'小藍(lán)','age':10}【學(xué)生】聆聽、記錄、理解2、使用內(nèi)置函數(shù)dict()創(chuàng)建字典使用內(nèi)置函數(shù)dict()可通過(guò)其他字典、“(鍵,值)”對(duì)的序列或關(guān)鍵字參數(shù)來(lái)創(chuàng)建字典。例如,通過(guò)下面5種方式使用dict()函數(shù)可創(chuàng)建相同的字典。#直接賦值創(chuàng)建字典stu_info1={'num':'20210101','name':'小藍(lán)','age':10}#通過(guò)其他字典創(chuàng)建stu_info2=dict(stu_info1)#通過(guò)“(鍵,值)”對(duì)的列表創(chuàng)建stu_info3=dict([('num','20210101'),('name','小藍(lán)'),('age',10)])#通過(guò)關(guān)鍵字參數(shù)創(chuàng)建stu_info4=dict(num='20210101',name='小藍(lán)',age=10)#通過(guò)dict和zip結(jié)合創(chuàng)建stu_info5=dict(zip(['num','name','age'],['20210101','小藍(lán)',10]))【教師】小拓展zip()函數(shù)將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的zip對(duì)象。例如:list_str=['a','b','c','d'] #創(chuàng)建列表并賦值list_num=[1,2,3,4] #創(chuàng)建列表并賦值list_new=zip(list_str,list_num) #打包為元組組成的zip對(duì)象#用list()函數(shù)轉(zhuǎn)換為列表輸出,結(jié)果為[('a',1),('b',2),('c',3),('d',4)]print(list(list_new))【學(xué)生】聆聽、記錄、理解3、使用fromkeys()方法創(chuàng)建字典在Python中,當(dāng)所有鍵對(duì)應(yīng)同一個(gè)值時(shí),可使用fromkeys()方法創(chuàng)建字典,其語(yǔ)法格式如下。#創(chuàng)建字典,“值”默認(rèn)為Nonestu_age1=dict.fromkeys(['小藍(lán)','小舞'])#輸出stu_age1,結(jié)果為{'小藍(lán)':None,'小舞':None}print(stu_age1)#創(chuàng)建字典,“值”賦為10stu_age2=dict.fromkeys(['小藍(lán)','小舞'],10)#輸出stu_age2,結(jié)果為{'小藍(lán)':10,'小舞':10}print(stu_age2)【教師】強(qiáng)調(diào)以下問(wèn)題字典中的“鍵”是唯一的,創(chuàng)建字典時(shí)若出現(xiàn)“鍵”相同的情況,則后定義的“鍵-值”對(duì)將覆蓋先定義的“鍵-值”對(duì)。例如:x={'a':1,'b':2,'b':'3'} #直接賦值創(chuàng)建字典xprint(x) #輸出字典x,結(jié)果為{'a':1,'b':'3'}【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運(yùn)行結(jié)果是???________。person1={'身份證號(hào)':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)'} #直接創(chuàng)建person2=dict(person1) #通過(guò)其他字典創(chuàng)建person3=dict([('身份證號(hào)','110112XXXXXXXX0101'),('姓名','王宏'),('性別','男'),('居住地','北京市XX區(qū)XX街道XX小區(qū)')]) #通過(guò)“(鍵,值)”對(duì)的序列創(chuàng)建person4=dict(身份證號(hào)='110112XXXXXXXX0101',姓名='王宏',性別='男',居住地='北京市XX區(qū)XX街道XX小區(qū)') #通過(guò)關(guān)鍵字參數(shù)創(chuàng)建person5=dict(zip(['身份證號(hào)','姓名','性別','居住地'],['110112XXXXXXXX0101','王宏','男','北京市XX區(qū)XX街道XX小區(qū)'])) #通過(guò)dict和zip結(jié)合創(chuàng)建print(person1['姓名'])print(person2.get('姓名'))print(person1)print(person2)print(person3)print(person4)print(person5)(2)以下程序的運(yùn)行結(jié)果是________。person={'身份證號(hào)':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)',}person['居住地']='北京市通州區(qū)' #修改居住地 person['電話'] #增加電話print(person)【學(xué)生】完成題目【教師】隨機(jī)點(diǎn)名回答二、字典的訪問(wèn)【教師】講解Python中的字典的訪問(wèn)1、根據(jù)鍵訪問(wèn)值字典中的“鍵”可作為下標(biāo)訪問(wèn)對(duì)應(yīng)的“值”,如果字典中不存在這個(gè)“鍵”則會(huì)拋出異常,其語(yǔ)法格式如下。dict[key]其中,dict表示字典名,key表示要查找的鍵。例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info['num'] #根據(jù)num獲取學(xué)號(hào),結(jié)果為“20210101”stu_info['name'] #根據(jù)name獲取姓名,結(jié)果為“小藍(lán)”【學(xué)生】聆聽、記錄、理解2、使用get()方法訪問(wèn)值在訪問(wèn)字典時(shí),若不確定字典中是否有某個(gè)鍵,可通過(guò)get()方法獲取,若該鍵存在,則返回其對(duì)應(yīng)的值,若不存在,則返回默認(rèn)值,其語(yǔ)法格式如下。dict.get(key[,default=None])其中,dict表示字典名;key表示要查找的鍵;default表示默認(rèn)值,如果指定鍵的值不存在,返回該默認(rèn)值,當(dāng)default缺省時(shí),返回None。例如,使用get()方法訪問(wèn)前面定義的stu_info字典,可以用下面代碼實(shí)現(xiàn)。stu_info.get('name')#使用get()方法獲取學(xué)生姓名,結(jié)果為“小藍(lán)”stu_info.get('sex') #使用get()方法獲取學(xué)生性別,返回值為Nonestu_info.get('sex','女')#設(shè)置返回默認(rèn)值為“女”,返回值為“女”【教師】演示例4-13程序#創(chuàng)建中文詞組列表chinesechinese=['卷心菜','午餐','機(jī)器人','天空','花']#創(chuàng)建英文單詞列表englishenglish=['cabbage','lunch','robot','sky','flower']#使用dict()和zip()方法生成字典dictionary=dict(zip(chinese,english))word=input('請(qǐng)輸入中文詞組:') #輸入中文詞組,并賦給wordprint(dictionary.get(word))#使用get()方法獲取word的值并輸出【學(xué)生】觀察運(yùn)行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解三、字典的基本操作【教師】講解Python中的字典的基本操作與列表相似,Python也提供了大量方法用于字典元素的修改、添加、刪除、更新、復(fù)制等操作。1、修改和添加元素當(dāng)以指定“鍵”為下標(biāo)給字典元素賦值時(shí),有下面兩種含義。(1)若該“鍵”在字典中存在,則表示修改該“鍵”對(duì)應(yīng)的值。(2)若該“鍵”不存在,則表示添加一個(gè)新的“鍵-值”對(duì),即添加一個(gè)新元素到字典中。例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info['age']=11 #修改age的值print(stu_info['age']) #輸出修改后的age值,結(jié)果為11stu_info['sex']='女' #添加學(xué)生性別#輸出添加后的字典,結(jié)果為{'num':'20210101','name':'小藍(lán)','age':11,'sex':'女'}print(stu_info)【學(xué)生】聆聽、記錄、理解2、刪除元素要?jiǎng)h除字典中的元素或整個(gè)字典,可以使用del命令、clear()方法、pop()方法或popitem()方法。(1)del命令:根據(jù)“鍵”刪除字典中的元素,例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}delstu_info['age'] #刪除age“鍵-值”對(duì)#輸出刪除后的字典,結(jié)果為{'num':'20210101','name':'小藍(lán)'}print(stu_info)(2)clear()方法:刪除字典中的所有元素,其語(yǔ)法格式如下。dict.clear()其中,dict表示字典名。該方法不包含任何參數(shù),也沒(méi)有返回值。例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info.clear() #清空字典print(stu_info) #輸出清空后的字典,結(jié)果為{}(3)pop()方法:刪除指定的“鍵-值”對(duì),并返回該“鍵”的值,其語(yǔ)法格式如下。dict.pop(key[,default])其中,dict表示字典名;key表示刪除的鍵;default是默認(rèn)值,當(dāng)字典中沒(méi)有要?jiǎng)h除的key時(shí),該方法返回指定的默認(rèn)值。例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info.pop('age') #刪除age“鍵-值”對(duì),并返回age的值10stu_info.pop('age',11) #無(wú)指定鍵,返回默認(rèn)值11(4)popitem()方法:隨機(jī)刪除并返回一個(gè)“鍵-值”對(duì),其語(yǔ)法格式如下。dict.popitem()其中,dict表示字典名。該方法無(wú)參數(shù),返回值為一個(gè)隨機(jī)的“鍵-值”對(duì)。例如:#創(chuàng)建字典stu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info.popitem()#隨機(jī)刪除并返回某“鍵-值”對(duì),如('age',10)#輸出字典,結(jié)果為{'num':'20210101','name':'小藍(lán)'}print(stu_info)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運(yùn)行結(jié)果是_________。person={'身份證號(hào)':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)','電話':}delperson['電話'] #刪除電話print(person)person.popitem() #隨機(jī)刪除元素print(person)【學(xué)生】完成題目【教師】隨機(jī)點(diǎn)名回答3、更新字典update()方法用于將新字典的“鍵-值”對(duì)一次性全部添加到當(dāng)前字典中,如果兩個(gè)字典中存在相同的“鍵”,則以新字典中的“值”更新當(dāng)前字典,其語(yǔ)法格式如下。dict.update(dict1)其中,dict表示當(dāng)前字典,dict1表示新字典。例如:#創(chuàng)建字典stu_infostu_info={'num':'20210101','name':'小藍(lán)','age':10}#修改age的值,同時(shí)添加新元素stu_info.update({'age':11,'sex':'女'})#輸出字典,結(jié)果為{'num':'20210101','name':'小藍(lán)','age':11,'sex':'女'}print(stu_info)【教師】演示例4-14程序dictionary={'卷心菜':'cabbage','午餐':'lunch','機(jī)器人':'robot','天空':'sky','花':'flower'} #創(chuàng)建字典dictionary并賦值print(dictionary) #輸出dictionarydictionary.pop('卷心菜') #刪除“卷心菜”鍵-值對(duì)print(dictionary) #輸出dictionary#添加新字典dictionary.update({'公園':'park','橋':'bridge'})print(dictionary) #輸出dictionarydictionary['午餐']=['lunch','nooning'] #修改“午餐”的值print(dictionary) #輸出dictionary【學(xué)生】觀察運(yùn)行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解4、復(fù)制字典復(fù)制字典可使用copy()方法,返回字典的淺復(fù)制,其語(yǔ)法格式如下。dict.copy()其中,dict表示需要復(fù)制的字典,該方法無(wú)參數(shù),返回一個(gè)新字典。例如:#創(chuàng)建字典stu_infostu_info={'num':'20210101','name':'小藍(lán)','age':10}stu_info1=stu_info.copy() #復(fù)制stu_info,并賦給stu_info1#輸出stu_info1,結(jié)果為{'num':'20210101','name':'小藍(lán)','age':10}print(stu_info1)【教師】小拓展在Python中,可使用3種方法復(fù)制字典:直接賦值、淺復(fù)制和深復(fù)制。(1)直接賦值:復(fù)制對(duì)象的引用。(2)淺復(fù)制:使用copy()方法復(fù)制父對(duì)象及其子對(duì)象的引用。(3)深復(fù)制:使用deepcopy()方法完全復(fù)制父對(duì)象及其子對(duì)象,此方法包含在copy模塊中?!窘處煛垦菔纠?-15程序importcopy #導(dǎo)入copy模塊#創(chuàng)建字典dictionary并賦值dictionary={'卷心菜':'cabbage','午餐':['lunch','nooning']}dictionary1=dictionary #直接賦值dictionary2=dictionary.copy() #淺復(fù)制dictionary3=copy.deepcopy(dictionary) #深復(fù)制#將dictionary中鍵為“卷心菜”的值改為“pamphrey”dictionary['卷心菜']='pamphrey'#移除dictionary中鍵為“午餐”的值列表中的“nooning”dictionary['午餐'].remove('nooning')print('dictionary=',dictionary) #輸出dictionaryprint('dictionary1=',dictionary1) #輸出dictionary1print('dictionary2=',dictionary2) #輸出dictionary2print('dictionary3=',dictionary3) #輸出dictionary3【學(xué)生】觀察運(yùn)行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運(yùn)行結(jié)果是_______。person={'身份證號(hào)':'110112XXXXXXXX0101','姓名':'王宏','性別':'男','居住地':'北京市XX區(qū)XX街道XX小區(qū)'}person.update({'居住地':'北京市通州區(qū)XX街道XX小區(qū)','電話':}) #更新字典print(person)person2=person.copy() #復(fù)制字典print(person2)(2)以下程序的運(yùn)行結(jié)果是________。family_age={"grandmather":65,"grandfather":68,"mather":38,"father":38,"child":10}old=family_age["grandmather"]print("grandmotheris"+str(old)+".")【學(xué)生】完成題目【教師】隨機(jī)點(diǎn)名回答四、字典的遍歷【教師】講解Python中字典的遍歷當(dāng)字典包含大量元素時(shí),可使用遍歷的方法對(duì)元素進(jìn)行訪問(wèn),遍歷字典有以下3種方法。1、遍歷字典中所有的“鍵-值”對(duì)使用item()方法可遍歷字典中所有的“鍵-值”對(duì),該方法以dict_items形式返回可遍歷的“(鍵,值)”元組,其語(yǔ)法格式如下。dict.items()其中,dict表示字典。【學(xué)生】聆聽、記錄、理解2、遍歷字典中所有的鍵當(dāng)不需要使用字典中的值時(shí),可使用keys()方法只遍歷字典中的鍵,該方法以dict_keys形式返回字典中所有的鍵,其語(yǔ)法格式如下。dict.keys()其中,dict表示字典名?!緦W(xué)生】聆聽、記錄、理解3、遍歷字典中所有的值當(dāng)只需要使用字典中的值時(shí),可使用values()方法,該方法以dict_values形式返回字典中所有的值,其語(yǔ)法格式如下。dict.values()其中,dict表示字典名?!窘處煛繌?qiáng)調(diào)以下問(wèn)題dict_items、dict_keys和dict_values是Python的內(nèi)部數(shù)據(jù)類型,專用于表示字典的鍵值對(duì)、鍵和值,可使用list()函數(shù)將其轉(zhuǎn)換為列表?!窘處煛垦菔纠?-16程序dictionary={'卷心菜':'cabbage','午餐':'lunch','機(jī)器人':'robot','天空':'sky','花':'flower'} #創(chuàng)建字典dictionary并賦值print('中英文字典中所有中文詞組及其對(duì)應(yīng)的英文單詞:')foritemindictionary.items(): #遍歷字典所有的“鍵-值”對(duì)print(item) #輸出每個(gè)“鍵-值”對(duì)print('中英文字典中所有中文詞組:')forchineseindictionary.keys(): #遍歷字典所有的鍵print(chinese,end='') #輸出每個(gè)鍵print('\n中英文字典中所有英文單詞:')forenglishindictionary.values(): #遍歷字典所有的值print(english,end='') #輸出每個(gè)值【學(xué)生】觀察運(yùn)行結(jié)果并討論【教師】講解程序(主要代碼)【學(xué)生】聆聽、記錄、理解【教師】布置題目(1)以下程序的運(yùn)行結(jié)果是_______。stu_class={'趙':'優(yōu)','錢':'良','孫':'中','李':'及格'}forname,reportinstu_class.items():print(name,'的成績(jī)是',report)(2)以下程序的運(yùn)行結(jié)果是______。family_love={"grandmather":"dancing","grandfather":"computer","mather":"readingbook","father":"cooking","child":"playingpingpang"}formember,hobbyinfamily_love.items():print(member.title()+"."+hobby)【學(xué)生】完成題目【教師】隨機(jī)點(diǎn)名回答通過(guò)教師的講解和演示,使學(xué)生了解Python中的字典的使用任務(wù)實(shí)施(15min)【教師】帶領(lǐng)學(xué)生完成任務(wù)三?【教師】提出任務(wù)《中國(guó)詩(shī)詞大會(huì)》是一檔文化類演播室益智競(jìng)賽節(jié)目,競(jìng)賽形式多樣,如選擇、填空、詩(shī)詞識(shí)別、飛花令、詩(shī)詞接龍等。本任務(wù)要求大家編寫Python程序,利用字典設(shè)計(jì)題庫(kù),開發(fā)簡(jiǎn)單的“詩(shī)詞大會(huì)”游戲?!窘處煛侩S機(jī)點(diǎn)名回答time()函數(shù)用于獲取系統(tǒng)當(dāng)前的時(shí)間戳,即從格林尼治時(shí)間(GMT,1970年1月1日0時(shí)0分0秒)開始的浮點(diǎn)秒數(shù)。它包含在time模塊中,使用時(shí)須導(dǎo)入,且須通過(guò)模塊名調(diào)用。例如:importtime #導(dǎo)入time模塊time1=time.time() #time1為1621413300.0232565【學(xué)生】思考、討論一、進(jìn)行任務(wù)分析:完成本任務(wù),須首先設(shè)計(jì)題庫(kù),然后在規(guī)定時(shí)間內(nèi)循環(huán)隨機(jī)出題,判斷輸入的答案是否正確,并統(tǒng)計(jì)答對(duì)問(wèn)題次數(shù),如果答題時(shí)間到,則退出循環(huán),結(jié)束答題。具體實(shí)現(xiàn)步驟如下。(1)創(chuàng)建字典question_bank保存題庫(kù),問(wèn)題為“鍵”,正確答案為“值”。問(wèn)題使用元組(詳見任務(wù)四)保存,題干和選項(xiàng)為元組的元素。(2)使用keys()方法獲取question_bank的所有“鍵”(問(wèn)題),然后使用list()方法轉(zhuǎn)換為列表questions。(3)創(chuàng)建變量time1、number和count。time1表示開始時(shí)間,使用time模塊的time()函數(shù)獲??;number保存問(wèn)題在questions列表中的索引,初始賦值為空列表;count表示統(tǒng)計(jì)答對(duì)問(wèn)題次數(shù),初始賦值為0。(4)使用while循環(huán),判斷條件為True,在循環(huán)中進(jìn)行以下操作。①使用randint()函數(shù)生成一個(gè)0~len(questions)?1的隨機(jī)整數(shù)index,作為列表的索引。判斷index是否在number中(即該索引對(duì)應(yīng)的問(wèn)題已經(jīng)出現(xiàn)過(guò)),如果是則使用continue結(jié)束本次循環(huán),否則將index添加到number中。②使用for循環(huán)輸出questions[index]中的元素。③使用input()函數(shù)輸入答案,并賦給answer。然后判斷answer與該問(wèn)題的答案是否相等,如果是則輸出答對(duì)提示,并使count加1,否則輸出答錯(cuò)提示。④使用time模塊的time()函數(shù)獲取當(dāng)前時(shí)間,并賦給time2。然后計(jì)算time2和time1的差值delta_T,判斷delta_T是否大于規(guī)定時(shí)間,如果是則輸出count,并退出循環(huán)。二、參考代碼:01、importrandom #導(dǎo)入random模塊02、importtime #導(dǎo)入time模塊03、#創(chuàng)建字典question_bank,問(wèn)題為“鍵”,答案為“值”04、question_bank={05、('點(diǎn)字成詩(shī)(九宮格),從下面九個(gè)字中識(shí)別一句詩(shī)詞。','花多又','知逢時(shí)','雨少落'):'花落知多少',06、('點(diǎn)字成詩(shī)(十二宮格),從下面十二個(gè)字中識(shí)別一句詩(shī)詞。','柳生一白','云亮有家','花處人暗'):'白云生處有人家',07、('“會(huì)當(dāng)凌絕頂,一覽眾山小?!泵鑼懙氖悄淖??','A.廬山','B.黃山','C.泰山'):'C',08、('請(qǐng)問(wèn):《望廬山瀑布》的作者是下面哪位詩(shī)人?','A.王維','B.李白','C.杜甫'):'B',09、('填空:窗含()嶺千秋雪。','A.東','B.南','C.西'):'C',10、('請(qǐng)問(wèn):名句“海上生明月,天涯共此時(shí)”出自下面哪首詩(shī)?','A.杜甫《月夜憶舍弟》','B.張九齡《望月懷遠(yuǎn)》','C.李白《聞王昌齡左遷龍標(biāo)遙有此寄》'):'B',11、('請(qǐng)問(wèn):成語(yǔ)“寸草春暉”出自下面哪首詩(shī)?','A.白居易《賦得古原草送別》','B.蘇軾《春夜》','C.孟郊《游子吟》'):'C',12、('請(qǐng)問(wèn):下面成語(yǔ)中哪個(gè)不是出自杜牧的詩(shī)?','A.豆蔻年華','B.折戟沉沙','C.壯志未酬'):'C',13、('填空:()十三余,豆蔻枝頭二月初。',):'娉娉裊裊',14、('填空:花徑不曾()客掃,蓬門今始為君開。',):'緣',15、('請(qǐng)問(wèn):中國(guó)古代有四大美女,請(qǐng)問(wèn)宋代王安石《明妃曲》寫的是其中哪一位?','A.西施','B.王昭君','C.貂蟬'):'B',16、('請(qǐng)根據(jù)下面線索說(shuō)出一位詩(shī)人?','A.宋代一位著名的狀元','B.中國(guó)歷史上的一位民族英雄','C.創(chuàng)作有名句“人生自古誰(shuí)無(wú)死,留取丹心照汗青?!?):'文天祥',17、}18、#獲取question_bank的所有鍵,并轉(zhuǎn)換為列表19、questions=list(question_bank.keys())20、number=[] #創(chuàng)建空列表number,保存題目的索引21、count=0 #創(chuàng)建變量count,表示答對(duì)的問(wèn)題數(shù)22、time1=time.time() #獲取開始時(shí)間time123、whileTrue: #循環(huán)24、#生成0~len(questions)-1的隨機(jī)整數(shù)index25、index=random.randint(0,len(questions)-1)26、ifindexinnumber: #如果index在number中27、continue #結(jié)束本次循環(huán)28、number.append(index) #將index添加到number中29、foriteminquestions[index]:#遍歷問(wèn)題元組中的元素30、print(item) #輸出問(wèn)題31、answer=input('請(qǐng)輸入正確答案:')#輸入答案32、ifanswer==question_bank[questions[index]]:#如果答案正確33、print('恭喜你,答對(duì)了!') #輸出答對(duì)提示34、count+=1 #count加135、else: #如果答案不正確36、print('很遺憾,答錯(cuò)了!') #輸出答錯(cuò)提示37、time2=time.time() #獲取當(dāng)前系統(tǒng)時(shí)間time238、delta_T=int(time2-time1)#計(jì)算答題總時(shí)間delta_T39、ifdelta_T>30: #如果delta_T大于30s40、#輸出答題結(jié)束提示,并輸出count41、print('時(shí)間到,答題結(jié)束!您本次答對(duì)',count,'道題')42、break #退出循環(huán)三、代碼運(yùn)行結(jié)果:填空:()十三余,豆蔻枝頭二月初。請(qǐng)輸入正確答案:娉娉裊裊恭喜你,答對(duì)了!請(qǐng)問(wèn):名句“海上生明月,天涯共此時(shí)"出自下面哪首詩(shī)?A.杜甫《月夜憶舍弟》B.張九齡《望月懷遠(yuǎn)》C.李白

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論