版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Python程序設(shè)計(jì)基礎(chǔ)》課程實(shí)驗(yàn)教學(xué)大綱課程名稱:Python程序設(shè)計(jì)基礎(chǔ)英文名稱:TheBasicPythonlanguageprogramming課程代碼:實(shí)驗(yàn)課性質(zhì):選修課程負(fù)責(zé)人:大綱主撰人:大綱審核人:一、學(xué)時(shí)、學(xué)分課程總學(xué)時(shí):48實(shí)驗(yàn)學(xué)時(shí):32課程總學(xué)分:4實(shí)驗(yàn)學(xué)分:0二、適用專業(yè)及年級(jí)2022級(jí)軟件工程專業(yè)大學(xué)本科一、二年級(jí)學(xué)生及其他相關(guān)專業(yè)21級(jí)、20級(jí)學(xué)生三、實(shí)驗(yàn)教學(xué)目的與基本要求通過上機(jī)操作,力求能夠加深學(xué)生對(duì)課程講授內(nèi)容的理解,掌握Python語言的基礎(chǔ)語法和程序控制結(jié)構(gòu)、常用數(shù)據(jù)類型、函數(shù)與模塊、類與對(duì)象,熟練掌握os模塊實(shí)現(xiàn)文件的安全讀寫操作,應(yīng)用Tkinter模塊實(shí)現(xiàn)簡(jiǎn)單的圖形用戶界面設(shè)計(jì),能熟練應(yīng)用PyChram開發(fā)環(huán)境編寫規(guī)模較大的應(yīng)用軟件,具備使用Python語言解決實(shí)際問題的能力。同時(shí),通過上機(jī)編程操作,培養(yǎng)學(xué)生對(duì)計(jì)算機(jī)編程的認(rèn)識(shí),培養(yǎng)學(xué)生良好的編程習(xí)慣,并逐步積累計(jì)算機(jī)程序設(shè)計(jì)的經(jīng)驗(yàn)和技巧,為后續(xù)編寫實(shí)用型商業(yè)軟件奠定扎實(shí)的基礎(chǔ)。對(duì)學(xué)生上機(jī)實(shí)驗(yàn)的要求如下:(1)上機(jī)實(shí)驗(yàn)之前,學(xué)生應(yīng)當(dāng)為每次上機(jī)的內(nèi)容作好充分準(zhǔn)備。對(duì)每次上機(jī)需要完成的題目進(jìn)行認(rèn)真的分析,列出實(shí)驗(yàn)具體步驟,寫出符合題目要求的程序清單,準(zhǔn)備出調(diào)試程序使用的數(shù)據(jù),以便提高上機(jī)實(shí)驗(yàn)的效率。(2)按照實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)內(nèi)容以及思考題的要求進(jìn)行上機(jī)操作。錄入程序,編譯調(diào)試,反復(fù)修改,直到使程序正常運(yùn)行,得出正確的輸出結(jié)果為止。(3)根據(jù)實(shí)驗(yàn)結(jié)果,寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告應(yīng)當(dāng)包括:實(shí)驗(yàn)題目,實(shí)驗(yàn)?zāi)康?,?shí)驗(yàn)要求,程序?qū)崿F(xiàn),實(shí)驗(yàn)結(jié)果以及分析討論等內(nèi)容。四、主要儀器設(shè)備及消耗品硬件最低要求:Win10系統(tǒng)計(jì)算機(jī),CPUIntel酷睿i3或ARMR7以上,內(nèi)存8GB以上,硬盤200GB以上。每個(gè)學(xué)生每次上機(jī)實(shí)驗(yàn)使用同一臺(tái)計(jì)算機(jī)。軟件:PyCharm社區(qū)版或VisualStudio2022社區(qū)版或IDLE開發(fā)環(huán)境。五、實(shí)驗(yàn)課程內(nèi)容和學(xué)時(shí)分配序號(hào)實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)學(xué)分實(shí)驗(yàn)時(shí)數(shù)每組人數(shù)實(shí)驗(yàn)類型實(shí)驗(yàn)要求實(shí)驗(yàn)類別內(nèi)容提要1輸入與輸出實(shí)驗(yàn)061基礎(chǔ)必做專業(yè)1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先,調(diào)用輸入語句,對(duì)鍵盤上進(jìn)行讀取,并將讀取得到的字符串賦給name,將變量name的值、是否為字符串類型和數(shù)據(jù)類型進(jìn)行輸出;2.再次調(diào)用輸入語句,對(duì)鍵盤進(jìn)行讀取,將讀取的字符串賦給age,將age強(qiáng)制類型轉(zhuǎn)換為int型再賦給n1,將以十進(jìn)制數(shù)形式表示的字符串轉(zhuǎn)化為整數(shù),賦給n2,將n2的數(shù)據(jù)類型進(jìn)行輸出打印。調(diào)用內(nèi)置函數(shù)str將n2轉(zhuǎn)化為字符串,賦給s1,再調(diào)用內(nèi)置函數(shù)hex將n2轉(zhuǎn)化為十六進(jìn)制數(shù)(字符串形式),賦給s2;3.在當(dāng)前工程所在目錄下創(chuàng)建一個(gè)文件zy0201.txt,“mode='w'”表示打開方式為“寫入”類型,打開的文件對(duì)象設(shè)為fd。將文件對(duì)象fd不再使用時(shí),應(yīng)關(guān)閉它,將文件對(duì)象作為輸出設(shè)備,即向文件對(duì)象fd中寫入信息,最后將文件對(duì)象進(jìn)行關(guān)閉。2冒泡排序?qū)嶒?yàn)061基礎(chǔ)必做專業(yè)1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先將random模塊進(jìn)行裝載,設(shè)置偽隨機(jī)數(shù)發(fā)生器的種子為299792458,調(diào)用模塊random的函數(shù)shuffle隨機(jī)打亂列表a的元素;2.將列表a的長(zhǎng)度(即元素個(gè)數(shù))賦給i,使用while結(jié)構(gòu),由于i的初始值為序列a的長(zhǎng)度,當(dāng)?shù)谝淮螆?zhí)行循環(huán)時(shí),j從0開始按步長(zhǎng)1累加到i-2,對(duì)于a[j]和a[j+1]兩個(gè)相鄰元素進(jìn)行排序,將其中的小數(shù)存入a[j],其中的大數(shù)存入a[j+1]。再使用if結(jié)構(gòu),當(dāng)j為0時(shí),排序a[0]和a[1];當(dāng)j為1時(shí),排序a[1]和a[2];依次類推,當(dāng)j為i-2時(shí),排序a[i-2]和a[i-1](a[i-1]為列表a的最后一個(gè)元素)。因此,第一次執(zhí)行將序列a中最大的數(shù)保存在a[i-1]中(此時(shí)i=len(a),表示保存在序列a的最后一個(gè)元素中);3.使用內(nèi)層while結(jié)構(gòu),對(duì)于每?jī)蓚€(gè)相鄰元素,先判斷如果a[j]大于a[j+1],則將a[j]賦給臨時(shí)的t;將a[j+1]賦給a[j];將t賦給a[j+1]。即是如果a[j]大于a[j+1],則交換這兩個(gè)元素的值;4.內(nèi)層while結(jié)構(gòu)中,“j+=1”用于更新循環(huán)變量j的值。這里的j用作列表a的索引號(hào),外循環(huán)中,i從len(a)(即列表a的長(zhǎng)度)按步長(zhǎng)1遞減至2,當(dāng)i為len(a)時(shí),內(nèi)循環(huán)的操作將列表a中的最大值存入列表a的最后一個(gè)元素a[i-1]中;當(dāng)i為len(a)-1時(shí),內(nèi)循環(huán)的操作將表a中除最后一個(gè)元素的其余全部元素的最大值保存在a[i-1](即列表a的倒數(shù)第2個(gè)元素)中,依次類推。完成排序后,將列表進(jìn)行輸出打印。3奶茶店點(diǎn)單實(shí)驗(yàn)041基礎(chǔ)必做專業(yè)1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先,定義表示菜單的字典menu,其中的整數(shù)值表示單價(jià),再定義表示下單情況的字典mymenu,其中的整數(shù)值表示各個(gè)飲品的下單數(shù)量;2.使用while結(jié)構(gòu)實(shí)現(xiàn)的無限循環(huán)。調(diào)用輸入語句讀取一個(gè)字符串賦給user,當(dāng)user為字符“y”時(shí),退出無限循環(huán)體。使用一個(gè)for結(jié)構(gòu),輸出菜單供用戶選擇,提示用戶輸入選擇的飲品對(duì)應(yīng)的編號(hào)。由輸入的飲品編號(hào)得到對(duì)應(yīng)的飲品全稱字符串。再使用一個(gè)for結(jié)構(gòu),輸出飲品規(guī)格。提示用戶輸入飲品規(guī)格對(duì)應(yīng)的數(shù)字,然后使用match結(jié)構(gòu),將飲品規(guī)格數(shù)字轉(zhuǎn)化為飲品規(guī)格字符串。之后提示用戶輸入購(gòu)買的數(shù)量,賦給numb,更新個(gè)人點(diǎn)單信息,將數(shù)量numb保存在mymenu字典中,最后在while結(jié)構(gòu)中輸出提示信息,為下一次循環(huán)做準(zhǔn)備;3.下面是打印“小票”部分程序,打印“小票”標(biāo)題和小票出票時(shí)間,這里使用了strftime函數(shù),輸出一條分界線,輸出的另一條分界線,兩條分界線間為點(diǎn)單明細(xì)表,再輸出小票名細(xì)表的表頭,即“名稱規(guī)格數(shù)量*單價(jià)=價(jià)格”;4.將0賦給s,s用于保存總的消費(fèi)金額,再使用一個(gè)for結(jié)構(gòu),對(duì)于表示下單情況的字典mymenu中的每個(gè)元素e,每次循環(huán)時(shí):先判斷當(dāng)點(diǎn)了該飲品“小杯”時(shí),再輸出該飲品規(guī)格、數(shù)量、“*”號(hào)、單價(jià)以及價(jià)格,然后將該飲品的價(jià)格累加到s中;然后,判斷當(dāng)點(diǎn)了該飲品“大杯”時(shí),輸出該飲品規(guī)格、數(shù)量、“*”號(hào)、單價(jià)以及價(jià)格,將該飲品的價(jià)格累加到s中。之后,定義了一個(gè)lambda函數(shù);使用map函數(shù)將fun函數(shù)作用于兩個(gè)可迭代對(duì)象上,得到每種飲品的花費(fèi),保存在s1中。將s1轉(zhuǎn)化為列表,并調(diào)用sum函數(shù)求和得到總的花費(fèi)s2。最后輸出總價(jià)和打八折后的總價(jià)和致謝信息。4快速排序?qū)嶒?yàn)041基礎(chǔ)必做專業(yè)1.基于PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,該程序?qū)崿F(xiàn)將一個(gè)列表進(jìn)行快速排序,首先自定義函數(shù)myquicksort,具有三個(gè)參數(shù),a表示排序的列表,h表示列表的首索引號(hào)(為0),t表示列表的尾索引號(hào)(為len(a)-1)。為遞歸函數(shù)設(shè)置終止條件,即h與t相同時(shí),終止。再設(shè)置第一輪搜索,將首元素作為基準(zhǔn)數(shù);將h賦給i,即i指向最左邊的元素;將t賦給j,即j指向最右邊的元素;2.使用while結(jié)構(gòu)兩邊的開始搜索,先從右向左搜,再?gòu)淖笙蛴宜?。?dāng)i不等于j時(shí),開始這一輪搜索:先從右向左搜,找第一個(gè)比基準(zhǔn)數(shù)小的元素。再?gòu)淖笙蛴宜?,找第一個(gè)比基準(zhǔn)數(shù)大的元素。判斷如果j大于i,則交換a[i]和a[j];3.第一輪搜索完成后,將基準(zhǔn)數(shù)b和a[i]互換。然后,遞歸算法為對(duì)基準(zhǔn)數(shù)左邊的半個(gè)序列進(jìn)行快速排序;再對(duì)基準(zhǔn)數(shù)右邊的半個(gè)序列進(jìn)行快速排序;4.在測(cè)試程序中,定義列表a,并輸出列表a。調(diào)用快速排序函數(shù)對(duì)a進(jìn)行排序,輸出排序后的列表a。5類的繼承實(shí)驗(yàn)041基礎(chǔ)必做專業(yè)1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,在該程序中,定義了三個(gè)類。首先定義了類Point,表示二維圖形中的點(diǎn),為其定義構(gòu)造方法,由于使用了公有成員,沒有為類Point編寫get方法和set方法;2.定義了類Circle,在類中先為其定義構(gòu)造方法。然后定義了公有方法myarea和公有方法myperi,獲取圓的面積和周長(zhǎng)。再定義公有方法mydist,該方法計(jì)算當(dāng)前類定義的對(duì)象與指定的圓之間的圓心距;3.定義了類Sector,表示扇形,繼承了類Circle。為其定義構(gòu)造方法。定義了公有方法myarea和公有方法mysperi,計(jì)算扇形的面積和周長(zhǎng)。然后定義公有方法mydist,計(jì)算當(dāng)前類定義的扇形與指定的圓或扇形的圓心距,這里使用父類的同名方法mydist;4.在測(cè)試程序中,定義Circle類型的兩個(gè)對(duì)象,將對(duì)象表示的圓的面積、周長(zhǎng)和兩個(gè)對(duì)象之間的圓心距都進(jìn)行輸出打印;再定義Sector類型的對(duì)象,將該對(duì)象表示的扇形的面積、周長(zhǎng)以及扇形與指定圓之間的圓心距進(jìn)行輸出打印。6文件安全讀寫操作實(shí)驗(yàn)041基礎(chǔ)必做專業(yè)1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,使用帶finally部分的try結(jié)構(gòu),監(jiān)督文件打開和寫入數(shù)據(jù)操作,先以只讀方式打的文件,賦給對(duì)象;向文件對(duì)象寫入字符串“TodayisTuesday.”。無論是否發(fā)生異常,只要文件對(duì)象存在,則將文件對(duì)象關(guān)閉;2.使用為帶有finally部分的try結(jié)構(gòu),監(jiān)督文件打開和讀取數(shù)據(jù)操作,先以只讀方式打開name表示的文件,賦給對(duì)象;再讀出文件對(duì)象中的全部數(shù)據(jù)。這個(gè)過程中無論是否觸發(fā)異常,都將判斷如果文件對(duì)象不為None,則關(guān)閉文件對(duì)象。7“復(fù)數(shù)計(jì)算器”實(shí)驗(yàn)041基礎(chǔ)必做專業(yè)1.基于PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,首先定義類MainForm,在MainForm類中定義構(gòu)造方法,然后定義界面設(shè)計(jì)方法myinitgui,這里的“變量”設(shè)置原則為:如果變量被類的其他方法使用,例如保存控件內(nèi)容的變量,則該變量設(shè)置為數(shù)據(jù)成員,即該變量作為self中的變量;如果變量不再被類的其他方法調(diào)用,例如控件的界面設(shè)計(jì)相關(guān)的變量,使用局部變量形式,即該變量不作為self中的變量;2.調(diào)用靜態(tài)文本框控件、編輯框控件、復(fù)選控件、單選控件、命令控件等和三種布局方法對(duì)圖形用戶界面進(jìn)行設(shè)計(jì);3.對(duì)命令按鈕綁定的回調(diào)函數(shù)進(jìn)行定義,使用了try-except-else結(jié)構(gòu)。讀取兩個(gè)編輯框中的數(shù)據(jù)并轉(zhuǎn)化為復(fù)數(shù),如果遇到異常則在命令行窗口輸出異常提示信息,注意:在圖形用戶界面程序下,這個(gè)異常輸出不顯示;在使用PyCharm運(yùn)行模式下,若有異常輸出,可以PyCharm的命令行窗口中查看異常。再使用一個(gè)if結(jié)構(gòu),判斷如果“取共軛”復(fù)選框選中,則將兩個(gè)復(fù)數(shù)取共軛。然后一個(gè)match多分支結(jié)構(gòu),根據(jù)單選鈕的狀態(tài),分別計(jì)算兩個(gè)復(fù)數(shù)的和、差、積或商。最后使用一個(gè)if結(jié)構(gòu),判斷如果“取?!睆?fù)選框選中,則計(jì)算結(jié)果的模;4.將結(jié)果的字符串形式以只讀形式在第三個(gè)編輯框中顯示。當(dāng)?shù)谌齻€(gè)編輯框內(nèi)容改變后,圖形用戶界面刷新時(shí),將編輯框的新內(nèi)容將顯示在控件中。圖形用戶界面程序的刷新率不是固定的,由操作系統(tǒng)決定,一般,當(dāng)某個(gè)控件的內(nèi)容變化時(shí),將啟動(dòng)一次顯示刷新;5.在測(cè)試程序中,通過MainForm類創(chuàng)建了一個(gè)窗口對(duì)象,再調(diào)用方法,啟動(dòng)窗口,讓窗口對(duì)象進(jìn)入事件等待狀態(tài)。實(shí)驗(yàn)一、輸入與輸出實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.熟練掌握Python語言的輸入和輸出語句;2.了解程序調(diào)試過程;3.靈活運(yùn)用列表和字符串的使用;實(shí)驗(yàn)要求:1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先,調(diào)用輸入語句,對(duì)鍵盤上進(jìn)行讀取,并將讀取得到的字符串賦給name,將變量name的值、是否為字符串類型和數(shù)據(jù)類型進(jìn)行輸出;2.再次調(diào)用輸入語句,對(duì)鍵盤進(jìn)行讀取,將讀取的字符串賦給age,將age強(qiáng)制類型轉(zhuǎn)換為int型再賦給n1,將以十進(jìn)制數(shù)形式表示的字符串轉(zhuǎn)化為整數(shù),賦給n2,將n2的數(shù)據(jù)類型進(jìn)行輸出打印。調(diào)用內(nèi)置函數(shù)str將n2轉(zhuǎn)化為字符串,賦給s1,再調(diào)用內(nèi)置函數(shù)hex將n2轉(zhuǎn)化為十六進(jìn)制數(shù)(字符串形式),賦給s2;3.在當(dāng)前工程所在目錄下創(chuàng)建一個(gè)文件zy0201.txt,“mode='w'”表示打開方式為“寫入”類型,打開的文件對(duì)象設(shè)為fd。將文件對(duì)象fd不再使用時(shí),應(yīng)關(guān)閉它,將文件對(duì)象作為輸出設(shè)備,即向文件對(duì)象fd中寫入信息,最后將文件對(duì)象進(jìn)行關(guān)閉。實(shí)驗(yàn)二、冒泡排序?qū)嶒?yàn)實(shí)驗(yàn)?zāi)康模?.掌握random模塊的使用;2.熟練掌握各種程序控制結(jié)構(gòu)的使用。實(shí)驗(yàn)要求:1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先將random模塊進(jìn)行裝載,設(shè)置偽隨機(jī)數(shù)發(fā)生器的種子為299792458,調(diào)用模塊random的函數(shù)shuffle隨機(jī)打亂列表a的元素;2.將列表a的長(zhǎng)度(即元素個(gè)數(shù))賦給i,使用while結(jié)構(gòu),由于i的初始值為序列a的長(zhǎng)度,當(dāng)?shù)谝淮螆?zhí)行循環(huán)時(shí),j從0開始按步長(zhǎng)1累加到i-2,對(duì)于a[j]和a[j+1]兩個(gè)相鄰元素進(jìn)行排序,將其中的小數(shù)存入a[j],其中的大數(shù)存入a[j+1]。再使用if結(jié)構(gòu),當(dāng)j為0時(shí),排序a[0]和a[1];當(dāng)j為1時(shí),排序a[1]和a[2];依次類推,當(dāng)j為i-2時(shí),排序a[i-2]和a[i-1](a[i-1]為列表a的最后一個(gè)元素)。因此,第一次執(zhí)行將序列a中最大的數(shù)保存在a[i-1]中(此時(shí)i=len(a),表示保存在序列a的最后一個(gè)元素中);3.使用內(nèi)層while結(jié)構(gòu),對(duì)于每?jī)蓚€(gè)相鄰元素,先判斷如果a[j]大于a[j+1],則將a[j]賦給臨時(shí)的t;將a[j+1]賦給a[j];將t賦給a[j+1]。即是如果a[j]大于a[j+1],則交換這兩個(gè)元素的值;4.內(nèi)層while結(jié)構(gòu)中,“j+=1”用于更新循環(huán)變量j的值。這里的j用作列表a的索引號(hào),外循環(huán)中,i從len(a)(即列表a的長(zhǎng)度)按步長(zhǎng)1遞減至2,當(dāng)i為len(a)時(shí),內(nèi)循環(huán)的操作將列表a中的最大值存入列表a的最后一個(gè)元素a[i-1]中;當(dāng)i為len(a)-1時(shí),內(nèi)循環(huán)的操作將表a中除最后一個(gè)元素的其余全部元素的最大值保存在a[i-1](即列表a的倒數(shù)第2個(gè)元素)中,依次類推。完成排序后,將列表進(jìn)行輸出打印。實(shí)驗(yàn)三、奶茶店點(diǎn)單實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.掌握字典的使用;2.掌握使用lambda函數(shù)。實(shí)驗(yàn)要求:1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序。首先,定義表示菜單的字典menu,其中的整數(shù)值表示單價(jià),再定義表示下單情況的字典mymenu,其中的整數(shù)值表示各個(gè)飲品的下單數(shù)量;2.使用while結(jié)構(gòu)實(shí)現(xiàn)的無限循環(huán)。調(diào)用輸入語句讀取一個(gè)字符串賦給user,當(dāng)user為字符“y”時(shí),退出無限循環(huán)體。使用一個(gè)for結(jié)構(gòu),輸出菜單供用戶選擇,提示用戶輸入選擇的飲品對(duì)應(yīng)的編號(hào)。由輸入的飲品編號(hào)得到對(duì)應(yīng)的飲品全稱字符串。再使用一個(gè)for結(jié)構(gòu),輸出飲品規(guī)格。提示用戶輸入飲品規(guī)格對(duì)應(yīng)的數(shù)字,然后使用match結(jié)構(gòu),將飲品規(guī)格數(shù)字轉(zhuǎn)化為飲品規(guī)格字符串。之后提示用戶輸入購(gòu)買的數(shù)量,賦給numb,更新個(gè)人點(diǎn)單信息,將數(shù)量numb保存在mymenu字典中,最后在while結(jié)構(gòu)中輸出提示信息,為下一次循環(huán)做準(zhǔn)備;3.下面是打印“小票”部分程序,打印“小票”標(biāo)題和小票出票時(shí)間,這里使用了strftime函數(shù),輸出一條分界線,輸出的另一條分界線,兩條分界線間為點(diǎn)單明細(xì)表,再輸出小票名細(xì)表的表頭,即“名稱規(guī)格數(shù)量*單價(jià)=價(jià)格”;4.將0賦給s,s用于保存總的消費(fèi)金額,再使用一個(gè)for結(jié)構(gòu),對(duì)于表示下單情況的字典mymenu中的每個(gè)元素e,每次循環(huán)時(shí):先判斷當(dāng)點(diǎn)了該飲品“小杯”時(shí),再輸出該飲品規(guī)格、數(shù)量、“*”號(hào)、單價(jià)以及價(jià)格,然后將該飲品的價(jià)格累加到s中;然后,判斷當(dāng)點(diǎn)了該飲品“大杯”時(shí),輸出該飲品規(guī)格、數(shù)量、“*”號(hào)、單價(jià)以及價(jià)格,將該飲品的價(jià)格累加到s中。之后,定義了一個(gè)lambda函數(shù);使用map函數(shù)將fun函數(shù)作用于兩個(gè)可迭代對(duì)象上,得到每種飲品的花費(fèi),保存在s1中。將s1轉(zhuǎn)化為列表,并調(diào)用sum函數(shù)求和得到總的花費(fèi)s2。最后輸出總價(jià)和打八折后的總價(jià)和致謝信息。實(shí)驗(yàn)四、快速排序?qū)嶒?yàn)實(shí)驗(yàn)?zāi)康模?.掌握自定義函數(shù)的格式;2.掌握遞歸函數(shù);3.掌握快速排序算法的原理。實(shí)驗(yàn)要求:1.基于PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,該程序?qū)崿F(xiàn)將一個(gè)列表進(jìn)行快速排序,首先自定義函數(shù)myquicksort,具有三個(gè)參數(shù),a表示排序的列表,h表示列表的首索引號(hào)(為0),t表示列表的尾索引號(hào)(為len(a)-1)。為遞歸函數(shù)設(shè)置終止條件,即h與t相同時(shí),終止。再設(shè)置第一輪搜索,將首元素作為基準(zhǔn)數(shù);將h賦給i,即i指向最左邊的元素;將t賦給j,即j指向最右邊的元素;2.使用while結(jié)構(gòu)兩邊的開始搜索,先從右向左搜,再?gòu)淖笙蛴宜选.?dāng)i不等于j時(shí),開始這一輪搜索:先從右向左搜,找第一個(gè)比基準(zhǔn)數(shù)小的元素。再?gòu)淖笙蛴宜?,找第一個(gè)比基準(zhǔn)數(shù)大的元素。判斷如果j大于i,則交換a[i]和a[j];3.第一輪搜索完成后,將基準(zhǔn)數(shù)b和a[i]互換。然后,遞歸算法為對(duì)基準(zhǔn)數(shù)左邊的半個(gè)序列進(jìn)行快速排序;再對(duì)基準(zhǔn)數(shù)右邊的半個(gè)序列進(jìn)行快速排序;4.在測(cè)試程序中,定義列表a,并輸出列表a。調(diào)用快速排序函數(shù)對(duì)a進(jìn)行排序,輸出排序后的列表a。實(shí)驗(yàn)五、類的繼承實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.掌握類與對(duì)象的定義;2.掌握類中的屬性與方法的使用;3.掌握類之間的繼承關(guān)系。實(shí)驗(yàn)要求:1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,在該程序中,定義了三個(gè)類。首先定義了類Point,表示二維圖形中的點(diǎn),為其定義構(gòu)造方法,由于使用了公有成員,沒有為類Point編寫get方法和set方法;2.定義了類Circle,在類中先為其定義構(gòu)造方法。然后定義了公有方法myarea和公有方法myperi,獲取圓的面積和周長(zhǎng)。再定義公有方法mydist,該方法計(jì)算當(dāng)前類定義的對(duì)象與指定的圓之間的圓心距;3.定義了類Sector,表示扇形,繼承了類Circle。為其定義構(gòu)造方法。定義了公有方法myarea和公有方法mysperi,計(jì)算扇形的面積和周長(zhǎng)。然后定義公有方法mydist,計(jì)算當(dāng)前類定義的扇形與指定的圓或扇形的圓心距,這里使用父類的同名方法mydist;4.在測(cè)試程序中,定義Circle類型的兩個(gè)對(duì)象,將對(duì)象表示的圓的面積、周長(zhǎng)和兩個(gè)對(duì)象之間的圓心距都進(jìn)行輸出打印;再定義Sector類型的對(duì)象,將該對(duì)象表示的扇形的面積、周長(zhǎng)以及扇形與指定圓之間的圓心距進(jìn)行輸出打印。實(shí)驗(yàn)六、文件安全讀寫操作實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.掌握文件的讀寫操作;2.掌握常用的異常處理結(jié)構(gòu);3.靈活地將異常處理結(jié)構(gòu)運(yùn)用到文件讀寫操作。實(shí)驗(yàn)要求:1.在PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,使用帶finally部分的try結(jié)構(gòu),監(jiān)督文件打開和寫入數(shù)據(jù)操作,先以只讀方式打的文件,賦給對(duì)象;向文件對(duì)象寫入字符串“TodayisTuesday.”。無論是否發(fā)生異常,只要文件對(duì)象存在,則將文件對(duì)象關(guān)閉;2.使用為帶有finally部分的try結(jié)構(gòu),監(jiān)督文件打開和讀取數(shù)據(jù)操作,先以只讀方式打開name表示的文件,賦給對(duì)象;再讀出文件對(duì)象中的全部數(shù)據(jù)。這個(gè)過程中無論是否觸發(fā)異常,都將判斷如果文件對(duì)象不為None,則關(guān)閉文件對(duì)象。實(shí)驗(yàn)七、“復(fù)數(shù)計(jì)算器”實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.理解視窗設(shè)計(jì)流程;2.會(huì)使用各種界面布局方法;3.掌握各種控件的使用。 實(shí)驗(yàn)要求:1.基于PyCharm集成開發(fā)環(huán)境下,編寫一個(gè)完整的Python語言程序,首先定義類MainForm,在MainForm類中定義構(gòu)造方法,然后定義界面設(shè)計(jì)方法myinitgui,這里的“變量”設(shè)置原則為:如果變量被類的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《導(dǎo)醫(yī)工作流程》課件
- 單位管理制度集合大全【人員管理篇】
- 單位管理制度集粹選集【人事管理篇】
- 單位管理制度匯編大全【員工管理】
- 單位管理制度分享合集【職工管理】十篇
- 單位管理制度呈現(xiàn)大全【員工管理篇】十篇
- 《員工的激勵(lì)與考核》課件
- 《語文大自然的語言》課件
- 八年級(jí)下冊(cè)期末考試專項(xiàng)訓(xùn)練03 論述題30(答案及解析)
- 《標(biāo)準(zhǔn)的理解要點(diǎn)》課件
- ICD-10疾病編碼完整版
- 高頻焊接操作技術(shù)規(guī)范
- 環(huán)氧樹脂固化
- GB_T4897-2015刨花板(高清版)
- 公路工程竣工驗(yàn)收辦法
- 畢業(yè)設(shè)計(jì)(論文)安徽汽車產(chǎn)業(yè)的現(xiàn)狀分析及發(fā)展戰(zhàn)略研究
- 帆軟BIFineBI技術(shù)白皮書
- 絞車斜巷提升能力計(jì)算及絞車選型核算方法
- 6_背景調(diào)查表
- 畢業(yè)設(shè)計(jì)(論文)礦泉水瓶吹塑模設(shè)計(jì)
- 在離退休老干部迎新春座談會(huì)上的講話(通用)
評(píng)論
0/150
提交評(píng)論