版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python程序設(shè)計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設(shè)計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:
情景一揭秘Python程序設(shè)計之謎教學課題IDLE的下載安裝和使用序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:掌握下載和安裝IDLE的方法,熟練掌握IDLE的命令(交互)模式和程序(腳本)模式,熟練應(yīng)用IDLE來編寫、運行Python程序。知識目標:認識Python語言、了解Python發(fā)展歷史、特性和應(yīng)用范圍。素質(zhì)目標:接受新知識、自主學習的能力。教學重點IDLE的使用教學難點Python程序的調(diào)試運行教學過程設(shè)計備注一、課程概述介紹教師個人信息、聯(lián)系方式等;介紹Python程序設(shè)計課程在計算機應(yīng)用技術(shù)專業(yè)中的地位;介紹Python技術(shù)的應(yīng)用領(lǐng)域;介紹Python程序設(shè)計課程的考核等。二、教學內(nèi)容1、Python語言的發(fā)展歷史python是1989年圣誕節(jié)期間,由荷蘭人GuidovanRossum(吉多.范羅蘇姆)在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,作為ABC語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提.派森的飛行馬戲團》(MontyPython'sFlyingCircus)。python2.0于2000.10.16日發(fā)布,增加現(xiàn)實完整的垃圾回收,并支持Unicode。2018年3月,該語言作者在郵件列表上宣布Python2.7將于2020年1月1日終止支持。Python3.0于2008.12.3日發(fā)布,此版不完全兼容之前的Python源代碼。不過,很多新特性后來也被移植到舊的Python2.6/2.7版本。Python的特點易于學習:Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個明確定義的語法,學習起來更加簡單。易于閱讀:Python代碼定義的更清晰。易于維護:Python的成功在于它的源代碼是相當容易維護的。一個廣泛的標準庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好?;幽J剑夯幽J降闹С?,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動的測試和調(diào)試代碼片斷??梢浦玻夯谄溟_放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。可擴展:如果你需要一段運行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用??汕度?你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得“腳本化”的能力。3、IDLE的下載在Windows平臺下載IDLE的步驟打開瀏覽器,訪問Python官網(wǎng)/,單擊“Downloads”菜單下的“Windows”版本如果需要下載其它歷史版本,可以直接進入Downloads按鈕,選擇符合本地計算機系統(tǒng)和位數(shù)的Python版本即可。點擊Download
后邊的鏈接就可以直接下載了。4、IDLE的安裝雙擊下載的文件,此時會彈出一個Python安裝向?qū)У拇翱?。勾上“AddPython3.9toPATH”,然后單擊“Customizeinstallation”按鈕。默認選擇,單擊“Next”按鈕。在彈出的窗口中可以修改安裝路徑。安裝成功之后,會彈出安裝成功的窗口。5、讓同學們在計算機上把Python的下載與安裝實踐操作一遍。6、IDLE的使用IDLE(IntegratedDevelopmentandLearningEnvironment)官方標準集成開發(fā)環(huán)境,從官網(wǎng)下載Python并安裝后,同時就安裝了IDLE。安裝完成后,使用組合鍵“Win+R”打開運行窗口,輸入“cmd”,打開命令提示符窗口,在窗口中輸入“python”或“py”,此時如出現(xiàn)下圖所示的信息,則說明Python已經(jīng)成功安裝。當然,我們也可以使用開始按鈕,找到Python3.9下的IDLE(Python3.964-bit)官方標準集成開發(fā)環(huán)境,到如下圖所示。”>>>”提示符表示Python已經(jīng)做好準備,等待你向它發(fā)布命令,讓它干活。7、讓同學們在計算機上把IDLE的命令(交互)模式和程序(腳本)模式都實踐操作一遍,加深印象。三、總結(jié)通過本次任務(wù)的學習和實踐,我們了解了Python語言的發(fā)展歷史、特點和應(yīng)用領(lǐng)域,能夠獨立完成IDLE的下載與安裝任務(wù),并且能夠熟練地掌握和使用IDLE的命令(交互)模式和程序(腳本)模式來完成基本的操作。同時建議大家樹立版權(quán)意識,通過官方網(wǎng)站下載正版軟件,避免到陌生的網(wǎng)站和平臺下載未經(jīng)驗證的軟件。作業(yè)布置使用IDLE輸出:“好好學習,天天向上!”教學反思教師總結(jié)本次課的知識點,重點強調(diào)Python語言的優(yōu)點和應(yīng)用領(lǐng)域,突出Python程序設(shè)計的重要性和應(yīng)用性,從而提高同學們的學習興趣。結(jié)合教學重點和難點,對所學知識進一步強化。情景一揭秘Python程序設(shè)計之謎主題輸入與輸出序號2課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:在PyCharm集成開發(fā)環(huán)境中,編寫程序?qū)崿F(xiàn)用戶信息的錄入(包括用戶名、密碼、姓名、性別、年齡等),并將上述信息以格式化輸出到控制臺。知識目標:了解PyCharm的版本、功能和創(chuàng)建、運行Python程序的步驟。素質(zhì)目標:接受新知識、自主學習的能力。教學重點使用PyCharm開發(fā)環(huán)境編寫Python程序教學難點Python程序的調(diào)試運行教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容Python語言的發(fā)展歷史,Python的下載與安裝,IDLE的使用;同學們上節(jié)課已經(jīng)掌握了Python自帶IDLE的兩種應(yīng)用模式,大家覺得如果使用這兩種模式中的一種來開發(fā)一個應(yīng)用程序,方便嗎?有沒有困難?顯而易見,Python自帶IDLE應(yīng)用到真實的開發(fā)案例中就有些功能不足、捉襟見肘了。大致原因有:界面不友好、沒有代碼提示功能、自帶的數(shù)據(jù)包很少等。論語有云:“工欲善其事,必先利其器”,本次課我們一起來學習讓Python開發(fā)事半功倍的PyCharm。二、教學內(nèi)容1、PyCharm的介紹PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,比如調(diào)試、語法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動完成、單元測試、版本控制等。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業(yè)Web開發(fā)。PyCharm是由JetBrains打造的一款PythonIDE,同時支持GoogleAppEngine,PyCharm支持IronPython。這些功能在先進代碼分析程序的支持下,使PyCharm成為Python專業(yè)開發(fā)人員和剛起步人員使用的有力工具。PyCharm分為專業(yè)版(Professional)和社區(qū)版(Community),這兩種版本的區(qū)別是:專業(yè)版:功能全,適合專業(yè)開發(fā)人員,需要收費。社區(qū)版:部分功能,適合學生、教育者,免費。相比專業(yè)版,社區(qū)版缺少專業(yè)版中的Web開發(fā),PythonWeb框架,Python的探查,遠程開發(fā)等功能。2、PyCharm的下載打開PyCharm官網(wǎng)(/pycharm),單擊“Download”。選擇”Community”社區(qū)版,單擊“Download”下載即可。3、PyCharm的安裝下載完成后,雙擊安裝包進行安裝,單擊“Next”按鈕;單擊"Browse…修改安裝路徑,建議不要使用中文字符,單擊“Next”按鈕。根據(jù)自己的實際情況勾選相應(yīng)選項,單擊“Next”開始安裝;稍等片刻,出現(xiàn)安裝成功提示,單擊“Finish”,重啟電腦完成安裝。4、創(chuàng)建PyCharm項目第一步:雙擊桌面“PyCharmCommunityEdition2021.2”啟動程序;勾選同意后單擊“Continue”,單擊“NewProject”按鈕創(chuàng)建新項目。第二步:設(shè)置“NewProject”相應(yīng)選項。第三步:在新建好項目上單擊右鍵,創(chuàng)建Python文件。第四步:編寫Python文件,在代碼編輯區(qū)單擊右鍵選擇“Runcqcvc”或“Ctrl+F5”鍵,運行該文件。5、輸入不同的數(shù)據(jù)類型input函數(shù)默認接收到的數(shù)據(jù)為都為字符串類型。如果需要輸入不同的數(shù)據(jù)類型,那么就要做一個工作,將用戶錄入的字符串類型轉(zhuǎn)為整型即可。6、輸出轉(zhuǎn)義字符中的特殊字符轉(zhuǎn)義字符功能轉(zhuǎn)義字符功能\n換行符,光標位置移到下一行開頭\r回車符,將光標位置移到本行開頭。\r后面的內(nèi)容移到字符串開頭,并逐一替換開頭部分字符,直至將后面的內(nèi)容完全替換\t水平制表符,即Tab鍵,一般相當于四個空格\b退格(Backspace)\’輸出單引號\”輸出雙引號\續(xù)行符(在行尾時)\\輸出反斜線符號Python支持格式化字符串的輸出,%運算符通常被稱為字符串取模運算符,可用于字符串格式化,最基本的用法是將一個值插入到一個有字符串格式符%x的字符串中。在字符串中把需要輸出的變量值用{}來代替,然后用format()來修改使之成為想要的字符串,默認情況下按照從左往右的順序自動進行替換;但也可以在大括號中寫入序號讓替換的值根據(jù)位置而改變;同時還可以使用關(guān)鍵字來實現(xiàn)一一對應(yīng)的賦值替換,其中數(shù)字的精度通過在大括號前加冒號,格式為{:.xf}如果x為整數(shù)則沒有意義。7、讓同學們在計算機上把PyCharm的下載安裝與使用實踐操作一遍,老師對同學們的操作進行指導和答疑。三、總結(jié)通過本次任務(wù)的學習和實踐,掌握了PyCharm的下載安裝與使用、輸入與輸出函數(shù)的使用方法。并且能夠熟練地使用輸入函數(shù)完成信息的錄入以及數(shù)據(jù)類型的轉(zhuǎn)換、使用輸出函數(shù)進行格式化輸出。同時理解在程序編寫過程中代碼規(guī)范的目的和意義,不僅僅可以增加程序的可讀性和可維護性,更重要的是可以促進團隊合作、降低維護成本、有助于程序員自身的成長。作業(yè)布置使用PyCharm輸出:“書山有路勤為徑,學海無涯苦作舟”教學反思教師指出學生實踐中可能出錯和已經(jīng)出錯的地方,結(jié)合教學重點和難點,對所學知識進一步強化。情景一揭秘Python程序設(shè)計之謎主題第三方庫的安裝序號3課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:掌握兩種安裝第三方庫的方法。知識目標:了解標準庫與第三方庫的區(qū)別、常用的第三方庫名和功能。素質(zhì)目標:接受新知識、自主學習的能力。教學重點第三方庫的安裝教學難點常用的第三方庫名和功能教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容我們使用Python來編寫程序完成特定的功能,如果所有功能都重新開發(fā)的話,勢必會延長開發(fā)的周期,增加開發(fā)的成本。其中Python的特點之一就是因為其本身具有豐富而且強大的庫的第三方庫,從而使編程效率大大提高。我們只需要完成第三方庫的安裝,再導入后調(diào)用,即可實現(xiàn)具體功能。二、教學內(nèi)容1、第三方庫簡介Python有兩個庫,分別是標準庫與第三方庫。標準庫是隨著Python安裝的時候默認自帶的庫;而第三方庫則需要下載后安裝到python的安裝目錄下。強大的標準庫奠定了python發(fā)展的基石,豐富和不斷擴展的第三方庫是python壯大的保證。可以說不斷豐富并完善的Python庫才是Python真正的魅力所在。我們可以把第三方庫理解為一個黑匣子,它將編程過程中需要實現(xiàn)的功能進行歸類,再對某一類功能進行開發(fā)后封裝,以第三方庫的形式表現(xiàn)出來。使用者不用關(guān)心它的內(nèi)部邏輯和實現(xiàn)過程,只需要去尋找、掌握什么樣的庫可以幫助我們實現(xiàn)具體的功能,然后根據(jù)庫的使用方法直接導入對應(yīng)第三方庫后再調(diào)用即可,常用的第三方庫名和功能如下表所示。庫名功能庫名功能NumPy數(shù)據(jù)分析和計算基礎(chǔ)庫Flask輕量級Web開發(fā)框架Matplotlib二維數(shù)據(jù)可視化WeRoBot微信機器人開發(fā)框架PIL圖像處理SymPy數(shù)學符號計算工具Scikit-Learn機器學習和數(shù)據(jù)挖掘Pandas高效數(shù)據(jù)分析和計算RequestsHTTP協(xié)議訪問及網(wǎng)絡(luò)爬蟲Networkx復雜網(wǎng)絡(luò)和圖結(jié)構(gòu)的建模和分析Jieba中文分詞PyQt5基于Qt的專業(yè)級GUI開發(fā)框架BeautifulSoupHTML和XML解析器PyOpenGL多平臺OpenGL開發(fā)接口WheelPython第三方庫文件打包工具docoptPython命令行解析PyInstaller打包Python源文件為可執(zhí)行文件PyGame簡單小游戲開發(fā)框架DjangoPython最流行的Web開發(fā)框架Flask輕量級Web開發(fā)框架2、通過PyCharm安裝第三方庫雙擊桌面“PyCharmCommunityEdition”快捷方式打開項目,單擊“File”——“Settings”,在打開的對話框中單擊“Project:xx”左邊的小箭頭符號(xx是新建的項目名稱)——再單擊“PythonInterpreter”。此時可以看到已經(jīng)安裝成功的第三方庫以及版本。安裝第三方庫單擊對話框右側(cè)的“+”號,在彈出的“AvailablePackages”對話框中,左上方搜索欄中(放大鏡后)輸入你要安裝的第三方庫名(這里我們以安裝numpy為例),PyCharm會自動搜索輸入的庫名,此時左側(cè)顯示與該庫名類似的第三方庫;右上方顯示當前庫的信息和版本號、右下方可以選中復選框選擇你需要下載的版本(如果不勾選則默認為最新版本)如圖1-27所示,最后單擊“InstallPackage”開始自動安裝,具體安裝時間同第三方庫的大小和網(wǎng)絡(luò)速度有關(guān)。安裝結(jié)束后,返回“Settings”,會看到新安裝的第三方庫和安成功提示信息。3、通過pip命令安裝第三方庫首先使用組合鍵“Win+R”打開運行窗口,輸入“cmd”,打開命令提示符窗口,在窗口中輸入“piplist”查看已安裝的包,如果出現(xiàn)了WARNING提示,說明pip版本需要更新,只需要將提示信息后的更新命令復制后粘貼到提示后,回車確認即可完成更新。將pip更新以后,使用“pipinstall第三方庫的名”就可以自動下載并安裝第三方庫了。如果在命令行末尾看到有“Successfullyinstalled”信息即安裝成功,操作過程如圖1-30所示。最后使用“piplist”命令進行安裝驗證如下圖所示,如果想要卸載已經(jīng)安裝過的第三方庫使用“pipuninstall庫名”即可卸載。4、注意事項1.某些第三方庫之間是有依賴關(guān)系的,可以使用“pipshow庫名稱”進行查看;2.使用pip命令安裝第三方庫,有時速度較慢,可以在“pipinstall第三方庫名”后加一個“-i”參數(shù),后面可以指定國內(nèi)的一個鏡像源,用這個方法可以更加快速的安裝好第三方庫。(pipinstallnumpy-i/simple)三、總結(jié)通過本次任務(wù)的學習和實踐,我們了解了第三方庫重要的意義、常用第三方庫的名稱和功能、Python官方第三方庫的地址和國內(nèi)鏡像鏈接,掌握了安裝第三方庫的三種方法:能夠獨立通過PyCharm、pip命令和下載whl文件到本地離線安裝第三方庫,同時還掌握了第三方庫的查詢、更新和卸載的方法。強大的標準庫奠定了python發(fā)展的基石,而不斷豐富和擴展的第三方庫則是python的魅力所在,目前第三方庫已有幾十萬種,很多第三方庫不僅功能強大而且還十分健壯,值得我們借鑒和學習。這正如牛頓所說:“如果說我比別人看得更遠些,那是因為我站在了巨人的肩上”。作業(yè)布置安裝第三方庫Python-docx、xlrd、xlwt和Python-pptx教學反思情景一揭秘Python程序設(shè)計之謎主題人機交互序號4課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠根據(jù)需要劃出流程圖,并且輸入用戶信息后能夠格式化輸出。知識目標:了解IPO程序設(shè)計模式、常用流程圖符號以及代碼注釋的兩種形式。素質(zhì)目標:接受新知識、自主學習的能力。教學重點根據(jù)要求繪制流程圖,并完成四則運算教學難點格式化輸出教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容人機交互技術(shù)(Human-ComputerInteractionTechniques)是指通過計算機輸入、輸出設(shè)備,以有效的方式實現(xiàn)人與計算機對話的技術(shù)。人機交互技術(shù)包括機器通過輸出或顯示設(shè)備給人提供大量有關(guān)信息及提示請示等,人通過輸入設(shè)備給機器輸入有關(guān)信息,回答問題及提示請示等。人機交互技術(shù)是計算機用戶界面設(shè)計中的重要內(nèi)容之一。本次任務(wù)需要完成兩個綜合練習,一是輸入數(shù)字后進行四則運算(畫出流程圖)、二是輸入用戶信息后格式化輸出(增加注釋)。二、教學內(nèi)容1、IPO程序設(shè)計模式程序設(shè)計的關(guān)鍵是對問題進行分析和處理,需要弄清楚問題的輸入數(shù)據(jù)是什么?需要得到什么結(jié)果?重點是如何根據(jù)輸入數(shù)據(jù)獲得輸出結(jié)果,也就是如何對輸入數(shù)據(jù)進行處理,獲得最終結(jié)果,這個處理數(shù)據(jù)的過程,稱之為算法。通常將程序設(shè)計分為三個步驟:即輸入數(shù)據(jù)、處理過程(算法)、輸出結(jié)果,稱之為IPO程序設(shè)計模式。I:(Input)輸入數(shù)據(jù),用到的標準輸入設(shè)備,就是鼠標和鍵盤;P:(Process)處理過程(算法),指中央處理器對儲存在內(nèi)存中的數(shù)據(jù)進行處理;O:(Output)輸出結(jié)果,通常用到的標準輸出設(shè)備,就是顯示器。比如,用戶在鍵盤上輸入任意兩個數(shù)字,經(jīng)過求和運算,最后把結(jié)果輸出到屏蔽上,就是一個IPO程序設(shè)計模式。2、Python流程圖符號流程圖是一種用于表示算法或代碼流程的框圖組合,它以不同類型的框代表不同種類的程序步驟,每兩個步驟之間以箭頭連接起來。在程序開發(fā)中使用流程圖,有助于規(guī)劃高效的程序結(jié)構(gòu)、便于他人交流同時也是撰寫指導文檔不可缺少的內(nèi)容。Python常用流程圖符號如下圖所示。3、代碼注釋代碼的注釋是程序設(shè)計中不可缺少的,良好的注釋可以增加程序的可讀性,也方便程序員后期對代碼進行維護。Python代碼的注釋有兩種形式,一種是單行注釋,一種是多行注釋,首先我們來看一下單行注釋。(1) 單行注釋:以“#”開始,表示本行是注釋行,也就是“#”之后的內(nèi)容是注釋信息,當程序執(zhí)行時,這部分內(nèi)容會被忽略。代碼如下所示:#用戶輸入成績score=float(input(“請輸入成績:”))在Pycharm中,可以使用快捷鍵批量添加單行注釋,直接選中要添加注釋的語句,使用組合鍵“Ctrl+/”即可批量注釋多行。但是如果使用Python官方集成開發(fā)環(huán)境,要批量添加多行注釋的話,就要使用第二種注釋方法:三引號。(2) 多行注釋:用三個單引號“’’’”或者是三個雙引號“"""”將注釋的內(nèi)容括起來。多行注釋通常用來為Python文件、模塊、類或者函數(shù)等添加版權(quán)、功能描述等信息,代碼如下所示:'''這段程序的功能是:判斷輸入成績是否大于等于60,是則輸出及格。'''score=float(input(“請輸入成績:”))特別說明:在Python中,如果多行注釋(三個單引號或三個雙引號)作為語句的一部分出現(xiàn),就不能再將它們視為多行注釋的標記,而應(yīng)看做是字符串的標志。比如,我們使用三個單引號將'''Hello,World!'''放在print()輸出函數(shù)中,這個時候三個單引號之內(nèi)的信息就不再是注釋了,而是輸出的字符串。print('''Hello,World!''')語句的執(zhí)行結(jié)果為:“Hello,World!”由此可見,Python解釋器沒有將這里的三個單引號看做是注釋,而是將它們看作是字符串的標志。4、輸入數(shù)字后進行四則運算現(xiàn)在按任務(wù)要求將流程圖符號進行組合連接畫出四則運算中的加法流程圖如下圖所示,其余三種運算與加法流程圖類似。緊接著,開始程序具體功能的實現(xiàn)。此時需要特別注意,在Python3.x中input()函數(shù)默認接收到的數(shù)據(jù)為字符串型,如果將兩個字符串類型相加實則完成字符串連接的功能,而非真正的相加。所以需要將字符串型轉(zhuǎn)為浮點型后,再進行數(shù)值之間的相加,源代碼和運行結(jié)果如下圖所示。5、輸入用戶信息后格式化輸出首先完成用戶名、密碼、姓名、性別、年齡等信息的錄入,使用多個input()來重復錄入即可,再將錄入后不同的個人信息分別保存到不同的變量中。在字符串中把需要輸出的變量值用{}來代替,然后用format()來修改使之成為想要的字符串,其中數(shù)字的精度通過在大括號前加冒號,格式為{:.xf},源代碼如下圖所示。執(zhí)行代碼后依次輸入:用戶名、密碼、姓名、性別、年齡和職務(wù),回車確認后,格式化輸出結(jié)果如下圖。三、總結(jié)通過本次任務(wù)的學習和實踐,掌握了IPO程序設(shè)計模式、Python流程圖符號和代碼注釋的兩種方法。并且能夠根據(jù)要求熟練地使用流程圖符號畫出對應(yīng)流程圖、使用input函數(shù)完成各種類型信息的錄入、使用print函數(shù)進行格式化輸出。同時理解了代碼注釋的意義,對于復雜的操作,操作前應(yīng)該寫上多行注釋、不是一目了然的代碼,應(yīng)在其行尾添加注釋。對于許多程序員來說,基本的原則之一就是“:讓代碼自己說話”。代碼的注釋不僅僅要為將來可能維護你代碼的人考慮,而且要考慮到讀注釋的可能是你。作業(yè)布置教學反思Python程序設(shè)計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設(shè)計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:
情景二控制程序的結(jié)構(gòu)教學課題用戶信息的保存序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:掌握列表、元組、字典的創(chuàng)建、訪問和操作方法,并能夠根據(jù)實際情況保存用戶信息。知識目標:了解常見的數(shù)據(jù)類型。素質(zhì)目標:接受新知識、自主學習的能力。教學重點IDLE的使用教學難點Python程序的調(diào)試運行教學過程設(shè)計備注一、技術(shù)準備整形:整型就是我們平常所見的整數(shù),它是不帶小數(shù)點的,可以是正整數(shù)或負整數(shù)。浮點型:平時所用的帶有小數(shù)的數(shù)。浮點型兩種表現(xiàn)形式:帶小數(shù)和科學計數(shù)。布爾型:布爾型表示事物的兩種狀態(tài):真或假(True和False),沒有第三種。分別對應(yīng)整型數(shù)值:1和0。Python中任何空值都視為假,包括:Flase、None、0、[]、()、{}。復數(shù)型:由實數(shù)部分和虛數(shù)部分構(gòu)成,虛數(shù)部分必須有小寫的j或大寫的J組成,并且實部和虛部都是浮點數(shù)。二、教學內(nèi)容1、列表的創(chuàng)建、訪問和操作方法列表(list)是Python的一種內(nèi)建結(jié)構(gòu)數(shù)據(jù)類型。把所有元素放在一對“[中括號]”內(nèi),以“,”進行分隔,同一個列表中的元素可以是不同的類型。列表是一種可變序列類型,可以進行增加、修改、刪除元素等操作。(1)列表的創(chuàng)建>>>x=[1,2,3,4]>>>type(x)<class'list'>>>>y=[1,'a','python',9.9]>>>type(y)<class'list'>(2)列表的訪問使用下標索引來訪問列表中的值,從左往右以0開始依次增加,也可以從右往左以-1開始依次減小,如下圖所示。(3)列表的常用操作方法序號方法分類功能描述1列表.append(object)增加在列表的尾部追加元素2列表.insert(index,object)在列表的某個位置插入一個元素3列表1.extend(列表2)在列表2擴充到列表1后4列表.remove(value)刪除刪除列表中指定的第一個元素5列表.pop(index)刪除指定索引的元素,省略則指列表尾部6列表.clear()清空列表中的所有元素7列表[index]=object修改修改列表指定索引的元素8列表.index(value)查詢返回某元素在列表中的位置,未找到則報錯9列表.count(value)統(tǒng)計返回列表中某元素出現(xiàn)的次數(shù)10列表.sort(reverse=False)排序?qū)⒘斜碇械脑啬J按升序排序11列表.reverse()將列表中元素的順序顛倒2、元組的創(chuàng)建、訪問和操作方法(1)元組的創(chuàng)建元組是Python的一種內(nèi)建結(jié)構(gòu)數(shù)據(jù)類型。把所有元素放在一對“()”內(nèi),以“,”進行分隔,同一個元組中的元素可以是不同的類型。元組屬于不可變序列,一旦創(chuàng)建,不可以修改、刪除元素操作。首先聲明一個空列表,可以使用li=[],表示一個空的列表;同理我們聲明一個空元組,也可以使用tu=(),表示一個空的元組。再聲明一個元組x,元組x包含四個整數(shù):1,2,3,4,我們可以這樣寫:x=(1,2,3,4)回車,我們輸出x的內(nèi)容看一下結(jié)果。和列表一樣,元組中的元素也可以是不同的類型的。最后再聲明一個元組y,讓y中包含不同的元素類型,操作代碼如下。>>>li=[]>>>type(li)<class'list'>>>>tu=()>>>type(tu)<class'tuple'>>>>x=(1,2,3,4)>>>type(x)<class'tuple'>>>>y=(1,'a','python',9.9)>>>type(y)<class'tuple'>(2)訪問元組中的值同列表一樣,使用下標索引來訪元組中的值,從左往右以0開始依次增加,也可以從右往左以-1開始依次減小。(3)元組的操作方法元組只有兩個操作方式,分別是index和count。序號方法功能描述1tuple.index(value,[start[,stop]])返回某元素在元組中的位置2tuple.count(value)返回元組中某元素出現(xiàn)的次數(shù)3、字典的創(chuàng)建、訪問和操作方法(1)字典的創(chuàng)建字典是Python的一種內(nèi)建結(jié)構(gòu)數(shù)據(jù)類型。每個元素都是:“鍵:值”對形式存在。用“{}”將所有元素括起來,各元素之間用“,”進行分隔。字典與列表和元組主要的不是同:字典是無序的,其元素的訪問通過“鍵”實現(xiàn),而不是通過元素的位置,并且要求字典中”鍵”不能重復。>>>d1={}>>>type(d1)<class'dict'>>>>d2={'python':1,'c':2,'java':3}>>>type(d2)<class'dict'>(2)訪問字典中的值在列表的學習中,掌握了列表是通過下標索引進行訪問,那字典的訪問形式和列表一下嗎?我們使用之前聲明的字典d3,嘗試訪問第一個元素,在集成環(huán)境中輸入d3[0]回車,返回錯誤信息,說明字典不支持下標索引的方式來訪問。訪問字典中的值是通過“鍵”來訪問的,并且鍵是不變的。(3)字典的操作方法序號方法功能描述1dict.clear()清空字典2dict.copy()復制字典3dict.get(k,[default])獲得k(鍵)對應(yīng)的值,不存在不報錯4dict.items()獲得由鍵和值組成元組做為元素的列表5dict.keys()獲得鍵的迭代器6dict.pop(k[,d])刪除k(鍵)對應(yīng)的”鍵:值”對7dict.update(adict)從另一個字典更新字典元素的值,如不存在,則添加此元素8dict.values()獲得值的迭代器9dict.fromkeys(iter,value)以列表或元組中給定的鍵建立字典,默認值為value4、用戶信息的保存三、總結(jié)通過本次任務(wù)的學習和實踐,使我們熟悉了Python常用數(shù)據(jù)類型和內(nèi)建結(jié)構(gòu)數(shù)據(jù)類型,并且能夠熟練地掌握列表、元組、字典的創(chuàng)建、訪問和常用操作方法的實踐操作。要保存多個用戶的不同個人信息,可以首先建立一個空的列表備用,再逐一將不同用戶的詳細信息收集起來以鍵值對的方式保存到字典當中,最后使用列表append方法將字典追加到列表中保存即可。當然,上述方法是暫時的,待同學們學習了文件或數(shù)據(jù)庫的操作以后,建議將重要信息保存到文件或數(shù)據(jù)庫中。作業(yè)布置編寫程序完成用戶信息的保存教學反思同學們要強化個人信息自我保護意識,在生活、學習中養(yǎng)成保護個人信息的習慣。比如在向他人提供身份證等重要證件的復印件時,最好顯著標識此復印件的用途;一些帶有個人敏感信息的電子數(shù)據(jù),如證件照片等,建議用完即刪或者采用加密方式進行存儲;快遞單據(jù)涂抹掉關(guān)鍵信息后再丟棄等。情景二控制程序的結(jié)構(gòu)主題流程控制序號2課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠根據(jù)實際需求熟練使用分支和循環(huán)語句完成程序編寫。知識目標:理解順序結(jié)構(gòu)程序設(shè)計、代碼的縮進的層次結(jié)構(gòu)和、四種分支語句和循環(huán)語句。素質(zhì)目標:接受新知識、自主學習的能力。教學重點分支和循環(huán)語句教學難點分支和循環(huán)語句的嵌套教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容在編寫程序過程中,如果需要根據(jù)用戶的輸入,靈活的調(diào)整哪些語句執(zhí)行,哪些語句不執(zhí)行又該怎么辦呢?此時分支語句就非常重要了;然而有些問題僅僅通過分支條件語句還不能解決;有時為解決一個問題常常需要重復執(zhí)行一個或多個操作,這該怎么辦呢?這時就需要使用循環(huán)語句了。二、教學內(nèi)容1、分支結(jié)構(gòu)程序設(shè)計(1)單分支語句if表達式:語句塊當表達式的值為True或者其它等價值時(非空非零),表示條件滿足,則語句塊將被執(zhí)行,否則該語句塊不被執(zhí)行。表達式后用英文的冒號(:)結(jié)束,回車換行Python會自動縮進四個空格。接下來我們看一下實例,從鍵盤輸入成績,如果成績大于等于60分則顯示及格。score=float(input("請輸入成績:"))ifscore>=60:print("及格")單分支語句,只有一個if,當條件滿足時,只能得到一個結(jié)果;如果想根據(jù)輸入成績的不同,返回不同的結(jié)果,我們就要使用雙分支語句了。(2)雙分支語句if表達式:語句塊Aelse:語句塊B當表達式的值為True或者其它等價值時(非空非零),執(zhí)行語句塊A,否則執(zhí)行語句塊B。也就是說:雙分支語句執(zhí)行時,只會選擇一個分支執(zhí)行。拓展單分支語句的功能,如果輸入成績大于等于60分則顯示及格,否則顯示不及格。score=float(input("請輸入成績:"))ifscore>=60:print("及格")else:print("不及格")如果有兩個以上的條件,我們就要使用多分支語句了。(3)多分支語句語句格式if表達式A: 語句塊Aelif表達式B: 語句塊Belif表達式C: 語句塊C ……else:語句塊N語句執(zhí)行說明首先計算表達式A,如果其值為True或者非空非零,則執(zhí)行語句塊A;否則計算表達式B,如果其值為True或者非空非零,則執(zhí)行語句塊B;否則計算表達式C,如果其值為True或者或者非空非零,則執(zhí)行語句塊C;以此類推,如果所有表達式計算的結(jié)果都為False(空值/0),則執(zhí)行else后的語句塊N。使用多分支語句將不同分數(shù)段分別對應(yīng)五個不同的等級。如果輸入成績是90分及以上為優(yōu)秀,80-89分為良好,70-79為中,60-69及格,60分以下為不及格。拓展單分支語句的功能,如果輸入成績大于等于60分則顯示及格,否則顯示不及格。score=float(input("請輸入成績:"))ifscore>=90:print("優(yōu)秀")elifscore>=80:print("良好")elifscore>=70:print("中")elifscore>=60:print("及格")else:print("不及格")(4)分支嵌套語句嵌套就是一種包含關(guān)系,當外層的分支條件成立的情況下,再執(zhí)行內(nèi)層的分支條件,分支語句嵌套的格式如下圖所示。首先計算表達式A,如果其值為True或者非空非零,則計算表達式B,如果其值為True或者非空非零,則執(zhí)行語句塊B,否則執(zhí)行語句塊C;如果表達式A計算的結(jié)果都為False(空值/0),則執(zhí)行語句塊D。使用分支嵌套語句來實現(xiàn)分數(shù)是90分及以上的,則顯示優(yōu)秀;如果大于等于60分,顯示為合格;小于60分則顯示不合格。score=float(input("請輸入成績:"))ifscore>=60:ifscore>=90:print("優(yōu)秀")else:print("及格")else:print("不及格")2、循環(huán)結(jié)構(gòu)程序設(shè)計(1)while循環(huán)語句的格式while表達式:語句塊while循環(huán)語句可以解決程序中需要重復執(zhí)行的操作,其循環(huán)執(zhí)行的次數(shù)由循環(huán)條件決定,當循環(huán)條件滿足時,重復執(zhí)行某程序段,直到循環(huán)條件不成立為止。反復執(zhí)行的程序段稱為循環(huán)體,循環(huán)條件必須要在循環(huán)體中改變,否則可能會出現(xiàn)無限循環(huán)的結(jié)果。Python是區(qū)分大小寫的,所以我們在寫while的時候,注意都是小寫字母,否則會出現(xiàn)語法錯誤。while循環(huán)語句首先計算表達式的值,如果表達式的值為True(非空/非0),則執(zhí)行語句塊,執(zhí)行完后,再一次計算表達式的值,如果表達式的值仍然為True(非空/非0),則繼續(xù)執(zhí)行語句塊;如果表達式的值為False(空/0),則結(jié)束while循環(huán)語句,語句執(zhí)行流程如下圖所示。實踐案例1:任意輸入一個正整數(shù),求出1到該數(shù)的和,參考代碼如下。#求1+2+……+n的和n=int(input("請輸入求和的終止值:"))#初始化count=1sum=0#while循環(huán)求和并計數(shù)whilecount<=n:sum=sum+countcount=count+1#輸出結(jié)果print("1+2+……+%d=%d"%(n,sum))舉一反三:while循環(huán)語句打印九九乘法表。(2)for循環(huán)語句for<取值>in<序列或迭代對象>:語句塊Aelse:語句塊Bfor循環(huán)語句執(zhí)行步驟:①從序列或迭代對象中依次取一個值;②執(zhí)行語句塊A;③不斷重復①和②,直到序列或迭代對象全部取完。如果有else部分,則執(zhí)行else語句塊B,執(zhí)行完畢,結(jié)束for循環(huán),執(zhí)行for之后的語句;如果沒有else部分,則結(jié)束for循環(huán),執(zhí)行其后的語句。for循環(huán)中的range()函數(shù)參數(shù)說明:range(start,stop[,step])start:計數(shù)從start開始,默認從0開始;例如:range(5)等價于range(0,5)stop:計數(shù)到stop結(jié)束,但不包括stop;例如:range(0,5)是[0,1,2,3,4]沒有5;step:步長,默認為1。例如:range(0,5)等價于range(0,5,1)如果有兩個以上的條件,我們就要使用多分支語句了。實踐案例2:for循環(huán)語句打印星號矩陣圖,參考代碼如下。#for循環(huán)語句打印星號矩陣圖foriinrange(1,5):
forjinrange(1,6):
print('*',end='\t')
print()以上代碼的運行結(jié)果是輸出一個四行五列的星號矩陣圖。* * * * * * * * * * * * * * * * * * * * 舉一反三:for循環(huán)語句打印九九乘法表三、總結(jié)通過本次任務(wù)的學習和實踐,使我們熟悉了四種分支語句、兩種循環(huán)語句的使用格式和注意事項,并且能夠熟練地使用流程控制語句來完成相應(yīng)功能的開發(fā)。在通常情況下,分支語句只會執(zhí)行其中的一個分支,當表達式的值為真時,執(zhí)行該分支語句塊,并且該語句塊后的代碼不再執(zhí)行,跳出多分支語句,執(zhí)行多分支語句后面的代碼。而循環(huán)語句要特別注意,循環(huán)條件要能使循環(huán)最后結(jié)束,否則程序會一直運行下去,進入無限循環(huán)。當然,無限循環(huán)在日常生活中也是有需要的,比如堅強體育鍛煉,讓我們在享受體育樂趣的同時增強體質(zhì)、錘煉意志,從而養(yǎng)成終身運動、終身學習的好習慣。作業(yè)布置for循環(huán)語句打印九九乘法表教學反思情景二控制程序的結(jié)構(gòu)主題有趣的隨機數(shù)序號3課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:熟練掌握導入模塊的三種方式。知識目標:了解模塊的功能和常用的模塊。素質(zhì)目標:接受新知識、自主學習的能力。教學重點導入模塊的三種方式教學難點常用模塊相關(guān)屬性教學過程設(shè)計備注一、引出本節(jié)上課內(nèi)容在程序開發(fā)過程中,通常都是由多名程序員分工協(xié)作一起完成程序的開發(fā);Python在安裝后就已經(jīng)有了內(nèi)置模板,并且還可以使用功能豐富的第三方開源模塊,這使用編寫代碼不必從零開始,大大提高了代碼的開發(fā)周期提高效率。二、教學內(nèi)容1、導入模塊Python中提供了以下三種方式導入模塊:import模塊名import模塊名as模塊別名from模塊名import函數(shù)名/子模塊名/屬性在安裝Python時就默認已經(jīng)安裝好的模塊被稱為“標準庫”,也稱為內(nèi)建庫,比如math模塊。有人把它們稱為Python自帶的電池,意思是Python擁有無限能量。熟悉標準庫的使用是編程必須的。math模塊中有大量常用的數(shù)學計算函數(shù),如三角函數(shù)(sin(),cos(),tan())、反三角函數(shù)(asin(),acos(),atan())、對數(shù)函數(shù)(log(),log10(),log2())等,還有數(shù)學常量如pi(圓周率)、e等??梢杂胐ir(math)查看math模塊中的函數(shù)(方法)與常量(屬性)。Python自帶的模塊或者是第三方庫,在安裝時,系統(tǒng)自動將模塊的存放路徑記錄在sys.path列表中。那么自己編寫的模塊,如何能讓解釋器知道路徑呢?其實有兩種方法。第一種方法是在sys.path列表里添加自己所寫模塊的路徑;第二條方法是設(shè)置系統(tǒng)的環(huán)境變量,使其包含模塊的路徑。importsys #導入sys模塊sys.path.append('d:\\py') #sys.path列表里追加.py文件的路徑d:\\pyimportdemo #導入demo.py模塊demo.myfunction(5) #文件名.函數(shù)名(參數(shù))Python中的random模塊用于生成隨機數(shù),它提供了很多函數(shù)。random.random()#用于生成一個0到1的隨機浮點數(shù):0<=n<1.0random.randint(a,b)#返回a,b之間的整數(shù),注意:a,b均是整數(shù),且a要比b小random.randrange([start=0],stop[,step=1]) #只能傳入整數(shù),且不包括stoprandom.choice(sequence) #從sequence(序列,列表、元組和字符串)中隨機獲取一個元素random.shuffle(x) #用于將列表中的元素打亂順序random.sample(sequence,k) #從指定序列中隨機獲取k個不重復元素作為一個列表返回,sample函數(shù)不會修改原有序列。2、常用模塊datetime模塊定義了以下幾個類,來處理時間和日期。(1)datetime.date:表示日期的類。常用的屬性有year,month,day;(2)datetime.time:表示時間的類。常用的屬性有hour,minute,second,microsecond;(3)datetime.datetime:表示日期和時間的類;(4)datetime.timedelta:表示時間間隔,即兩個時間點之間的長度。calendar模塊是一個日歷模塊,用于生成日歷等。3、猜數(shù)字游戲(1)首先:導入隨機模塊importrandom(2)再將:姓名存入列表names=['張三','李四','王五','趙六','孫七','周八','吳九','鄭十'](3)最后:使用流程控制語句實現(xiàn)隨機點名使用while循環(huán)語句創(chuàng)建一個無限循環(huán),在循環(huán)體中讓用戶選擇是點名還是退出。當用戶輸入大寫或小寫的N時,使用break語句退出循環(huán)結(jié)束程序;當用戶輸入其它鍵時,使用隨機模塊.函數(shù)()輸出隨機點名姓名,參考代碼如下:importrandomn=random.randint(0,100)foriinrange(5):temp=int(input("請輸入你猜的整數(shù):"))iftemp==n:print('恭喜你,猜中了!')eliftemp>n:print('猜大了')else:print('猜小了')else:print('游戲結(jié)束!')print('你要猜的整數(shù)是:{}'.format(n))>>>y=[1,'a','python',9.9]>>>type(y)<class'list'>三、總結(jié)通過本次任務(wù)的學習和實踐,了解了什么是模塊以及導入和使用模塊的方法,掌握了break和continue語句的區(qū)別,并且能夠熟練地根據(jù)相關(guān)要求選擇該模塊合適的函數(shù)來解決實際問題。內(nèi)置模塊可以極大地提升程序開發(fā)的效率;自定義模塊將程序的各部分組件共用的功能提取出來放到一個模塊中,其它組件通過導入的方式使用該模塊,從而提高代碼的重用性、易于功能擴展和維、有利于團隊協(xié)作。作業(yè)布置編寫程序?qū)崿F(xiàn)搶紅包功能教學反思情景二控制程序的結(jié)構(gòu)主題學生信息管理系統(tǒng)序號4課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠使用for循環(huán)和if分支語句結(jié)合起來實現(xiàn)學生信息的實現(xiàn)顯示、增加、刪除、修改、查詢學生信息和退出管理系統(tǒng)六個模塊相應(yīng)功能。知識目標:了解簡易系統(tǒng)的開發(fā)過程。素質(zhì)目標:接受新知識、自主學習的能力。教學重點for與else,for與if語句配合使用教學難點教學過程設(shè)計備注一、引出本節(jié)上課內(nèi)容編寫一款面向過程簡易學生信息管理系統(tǒng),學生信息管理包括:顯示學生信息、增加學生信息、刪除學生信息、修改學生信息、查詢學生信息和退出管理系統(tǒng)共六個功能選項。要求:每個選項之間可以來回自由地切換,根據(jù)用戶的不同選擇分別實現(xiàn)顯示、增加、刪除、修改、查詢學生信息和退出管理系統(tǒng)六個模塊相應(yīng)功能。二、教學內(nèi)容1、需求分析學生信息管理系統(tǒng)包括:顯示、增加、刪除、修改、查詢和退出共六個功能選項。每個選項之間可以自由切換;每個選項獨立完成如下功能。1.顯示學生信息:是輸出所有學生的相關(guān)信息,使用for循環(huán)遍歷輸出所有學生的信息即可;2.增加學生信息:可以將學生記錄保存到列表當中,再使用append方法向列表尾部追加記錄;3.查詢學生信息:使用for循環(huán)遍歷學生信息,再用if分支語句進行查詢匹配,找到了則直接輸入學生的相關(guān)信息,沒有找到則輸出查無此人;4.修改學生信息:首先進行查詢,如果有匹配,則更新當前學生的信息;沒有找到則輸出查無此人;5.刪除學生信息:首先進行查詢,如果有匹配的學生記錄,使用remove方法將其刪除;沒有找到則輸出查無此人;6.退出管理系統(tǒng):直接退出學生信息管理系統(tǒng)。2、重要知識點1.顯示學生信息:while循環(huán)語句、if分支語句、for循環(huán)語句、range()函數(shù)、list[]列表、print()函數(shù);2.增加學生信息:if分支語句、input()函數(shù)、dict{}字典、append方法、print()函數(shù);3.查詢學生信息:if分支語句、input()函數(shù)、for循環(huán)和else語句、list[]列表、print()函數(shù)、break語句;4.修改學生信息:if分支語句、input()函數(shù)、for循環(huán)和else語句、list[]列表、print()函數(shù)、break語句;5.刪除學生信息:if分支語句、input()函數(shù)、for循環(huán)和else語句、remove方法、print()函數(shù)、break語句;6.退出學生信息:if分支語句、break語句。3、程序開發(fā)過程(1)操作選項顯示以使用多條print()語句逐一輸出上述每一行的內(nèi)容;推薦將上述內(nèi)容定義為多行字符串,(使用三個成對的單引號或者三個成對的雙引號)以所見即所得的方式直接輸出,參考代碼如下。#學生信息管理系統(tǒng)操作選項infor='''學生信息管理系統(tǒng)v1.0******************************** 1.顯示學生信息 2.增加學生信息 3.查詢學生信息 4.修改學生信息 5.刪除學生信息 0.退出管理系統(tǒng)********************************'''print(infor)(2)顯示學生信息當前學生信息系統(tǒng)中沒有存儲任何內(nèi)容,如果要顯示學生信息,那么需要在程序代碼中手動添加學生的信息。為了便于實現(xiàn)每個模塊的具體功能,我們新建列表students來保存所有學生的信息,每個學生的信息以鍵值對的方式存儲在字典中,有幾個學生就有幾個字典,各字典間之用逗號分隔,參考代碼如下。students=[
{'stid':101,'stname':'張三','stage':18,'stgender':'male'},
{'stid':102,'stname':'李四','stage':19,'stgender':'female'},
{'stid':103,'stname':'王五','stage':20,'stgender':'male'}
]實現(xiàn)每個選項之間來回自由切換,肯定需要用到循環(huán),在不知道循環(huán)次數(shù)的條件下,推薦使用while循環(huán),并且將while循環(huán)條件設(shè)置為True(無限循環(huán));再使用input()函數(shù)錄入用戶的操作序號;最后使用if多分支語句根據(jù)用戶不同的選擇,運行不同的模塊,實現(xiàn)不同的功能,主循環(huán)參考代碼如下。whileTrue:action=int(input('請輸入你要操作的序號:'))ifaction==1: #顯示學生信息 #顯示學生信息模塊elifaction==2: #增加學生信息 #增加學生信息模塊elifaction==3: #查詢學生信息 #查詢學生信息模塊elifaction==4: #修改學生信息 #修改學生信息模塊elifaction==5: #刪除學生信息 #刪除學生信息模塊elifaction==0: #退出管理系統(tǒng) #退出管理系統(tǒng)模塊else:print()print('你輸入的序號有誤,請重新輸入!')至此,顯示學生信息的所有條件都已具備,現(xiàn)在即可使用for循環(huán)遍歷輸出students列表中的所有學生的信息,參加代碼如下。ifaction==1: #顯示學生信息foriinrange(len(students)):print(students[i])print('顯示學生信息成功')print()(3)增加學生信息現(xiàn)在students列表中保存有三條學生記錄,需要增加學生記錄的話,首先使用多條input()函數(shù)讓用戶逐一添加學生的學號、姓名、年齡和性別;將剛才用戶錄入的所有學生信息以鍵值對的方式保存到一個臨時字典中;最后使用append方法將臨時字典追加到students列表中保存,參考代碼如下。elifaction==2: #增加學生信息a=input('請輸入學生的學號:')b=input('請輸入學生的姓名:')c=input('請輸入學生的年齡:')d=input('請輸入學生的性別:')temp={'stid':a,'stname':b,'stage':c,'stgender':d}students.append(temp)print('增加學生信息成功!')print()(4)查詢學生信息查詢學生信息模塊中,首先使用input()函數(shù)讓用請輸入需要查詢的學生姓名(或?qū)W號);使用for循環(huán)語句將students列表中保存的信息讀取后逐一賦值給臨時變量i;最后使用if分支語句對用戶查詢的姓名和臨時變量i中讀取到的姓名進行比較,如果找到了則輸出當前學生的所有信息并退出循環(huán);如果沒有找到則查詢查無此人,參考代碼如下。elifaction==3: #查詢學生信息x=input('請輸入你要查詢的學生姓名:')foriinstudents:ifi['stname']==x:print(i)print('查詢學生信息成功')breakelse:print('查無此人!')print()(5)修改學生信息將查詢模塊和增加模塊的功能結(jié)合起來即可實現(xiàn)修改學生信息模塊。首先是查詢學生信息,如果找到了則直接把修改后的學生信息保存即可并退出循環(huán);如果沒有找到則輸出查無此人,參考代碼如下。elifaction==4: #修改學生信息x=input('請輸入你要修改的學生姓名:')foriinstudents:ifi['stname']==x:i['stid']=input('請輸入新的學號:')i['stname']=input('請輸入新的的姓名:')i['stage']=input('請輸入新的的年齡:')i['stgender']=input('請輸入新的的性別:')print(i)print('修改學生信息成功!')breakelse:print('你輸入的學生未找到!')print()(6)刪除學生信息首先要進行查詢,如果有匹配的學生記錄,使用remove方法將其刪除并使用break語句退出循環(huán);如果沒有找到則輸出查無此人,參考代碼如下。elifaction==5: #刪除學生信息x=input('請輸入你要刪除的學生姓名:')foriinstudents:ifi['stname']==x:students.remove(i)print('刪除學生信息成功')breakelse:print('你輸入的學生未找到!')print()(7)退出學生信息管理系統(tǒng)在整個學生信息管理系統(tǒng)六個功能模塊中,退出模塊是最簡單的,只需要使用break語句退出while無限循環(huán)即可,參考代碼如下。ifaction==0:print()三、總結(jié)通過本次任務(wù)的學習和實踐,了解了簡易學生信息管理系統(tǒng)的開發(fā)過程,熟練地掌握和使用流程控制語句對不同數(shù)據(jù)類型進行存儲、追加、查詢、修改和刪除等常見操作方法;激發(fā)同學們的學習興趣、提升實踐操作水平,讓同學們更快、更好地掌握Python語言的基礎(chǔ)知識點。當然本次任務(wù)是面向過程的開發(fā),待學習了項目三之后,可以將面向過程的學生信息管理系統(tǒng)升級為面向?qū)ο蟮膶W生信息管理系統(tǒng)。作業(yè)布置優(yōu)化學生信息管理系統(tǒng)教學反思Python程序設(shè)計工作手冊式教材教案專業(yè)名稱:課程名稱:Python程序設(shè)計任課班級:教師姓名:所屬院系:職稱:課時:64使用教材:
情景三優(yōu)化程序的性能教學課題函數(shù)序號1課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠根據(jù)實際需求編寫自定義函數(shù),并通過調(diào)用該函數(shù)實現(xiàn)具體功能。知識目標:了解函數(shù)的功能和特點、函數(shù)參數(shù)及調(diào)用方法。素質(zhì)目標:接受新知識、自主學習的能力。教學重點編寫自定義函數(shù)教學難點函數(shù)參數(shù)教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容在上一節(jié)中我們已經(jīng)學習學生信息管理系統(tǒng),掌握了使用流程控制語句對不同數(shù)據(jù)類型進行存儲、追加、查詢、修改和刪除等常見操作。但是同學們發(fā)現(xiàn)了嗎?很多操作過程的代碼非常類似,我們完成可能將這些類似的代碼定義在一個函數(shù)中,需要使用的時候直接調(diào)用就可以了,既減小程序的長度,同時又提高代碼可重用性。二、教學內(nèi)容1、函數(shù)的定義在實際開發(fā)中,如果想把一段功能獨立的代碼進行封裝,我們就可以在這段代碼的上方,先寫上def關(guān)鍵字(def這個關(guān)鍵字是英文單詞define的縮寫,它的中文含義就是定義),def之后先空格,然后再給你這段代碼取個名字。在這里,友情提示一下,我們函數(shù)是對功能的封裝,取的這個名字,最好能表達函數(shù)所要實現(xiàn)的功能,這樣更加方便記憶和調(diào)用,所以函數(shù)名最好是能見名知意。函數(shù)名的后邊緊跟的是一對小括號或者叫圓括號,圓括號的后面再緊跟一個重要的冒號。這一行,稱為函數(shù)頭部的定義,函數(shù)頭部定義的四個元素的順序一定要記牢:首先是關(guān)鍵字def,然后空格再是函數(shù)名,函數(shù)名后緊跟一對圓括號,圓括后緊跟一個冒號。冒號后一定要換行縮進再定義函數(shù)體。函數(shù)體內(nèi)就是我們要封裝的函數(shù)功能代碼。注意函數(shù)體內(nèi)的代碼都要以關(guān)鍵字def為參照進行縮進。這就是函數(shù)定義的語法格式,一句話講:函數(shù)的定義分為函數(shù)頭部的定義和函數(shù)體的定義。2、函數(shù)調(diào)用函數(shù)的定義實現(xiàn)了函數(shù)的功能,函數(shù)定義好了,我們需要的這種特殊的積木也就造好了。如果不用放在哪也就只是擺設(shè),怎么將其用起來,堆砌自己的Python程序呢?那就是我們要介紹的第二個問題,即函數(shù)調(diào)用。函數(shù)調(diào)用很簡單,通過函數(shù)名和它后邊那對圓括號,便可完成,后邊那對圓括號叫形參表。我們先來看一個簡單的案例:假如,我們要編寫一個say_hello的函數(shù),封裝三行打招呼的代碼,并在函數(shù)下方調(diào)用打招呼的代碼。首先,我們寫上關(guān)鍵字def,然后空格寫上函數(shù)名say_hello,say_hello后面緊跟一對圓括號,圓括號后緊跟一個冒號,這就是函數(shù)頭部定義的四要素,代碼如下所示。defsay_hello():print("Hello!")print("Howareyou!")print("Goodmorning!")3、形參形參是指定義函數(shù)時,圓括號中的參數(shù),形參是用來接收實參的值的,它只能在函數(shù)內(nèi)部作為變量使用。在定義函數(shù)頭部時,圓括號中便可以列舉出需要用到的形參的名稱,多個形參之間用逗號分隔。例如,定義一個求兩數(shù)之和的函數(shù),代碼可以編寫為:defsum(num1,num2):result=num1+num2print(result)形參的作用有兩個:一是告訴外部把值傳到我這里來,二是在函數(shù)內(nèi)部當作變量運算。4、實參實參是指調(diào)用函數(shù)時,圓括號中的參數(shù),實參用來存放數(shù)據(jù)并將數(shù)據(jù)傳遞給形參。在程序中一般把需要傳遞給函數(shù)的數(shù)據(jù)依次列舉在實參表里,以逗號隔開。剛才定義的求和的sum()函數(shù)調(diào)用時,如果是將12和5兩數(shù)求和,可以將被加數(shù)12和加數(shù)5的值寫進實參表,形式為:sum(12,5)。實參的作用只有一個:把數(shù)據(jù)傳遞給形參,代碼如下。sum(12,5)5、變量的作用域變量的作用域就是變量在什么范圍內(nèi)起作用,一個變量在不同的位置,它的作用域也是不一樣的。定義在函數(shù)外部的變量稱為全局變量,全局變量的作用域是整個全局。局部變量是在函數(shù)的內(nèi)部定義,只能在其聲明的函數(shù)內(nèi)部使用。接下來,我們一起來討論一個小問題:全局變量和局部變量的名字可以相同嗎?如果它們的名字都是一樣的,那是先找全局變量還是局部變量呢?我們還是用一個案例來解答,參考代碼如下。deftestvar():n=1returnn=0print('調(diào)用前{}'.format(n))testvar()print('調(diào)用后{}'.format(n))上述代碼運行后,輸出的兩次結(jié)果都是0。這是因為當函數(shù)中的局部變量和全局變量同名時,它們的作用域不同,實則這兩個變量為不同的對象。6、編寫函數(shù)求圓的面積在掌握了函數(shù)的定義、調(diào)用、參數(shù)、變量作用域和返回值后,現(xiàn)在著手編寫一個函數(shù)實現(xiàn)隨機輸入三個圓半徑,分別求出三個圓的面積。題目雖然比較簡單,但是編寫函數(shù)求圓的面積可以讓我們學以致用、融會貫通。三、總結(jié)通過本次任務(wù)的學習和實踐,使我們了解了函數(shù)的功能和特點,掌握了函數(shù)的定義和調(diào)用的方法,并且通過綜合實訓的引導,能夠熟練運用多種方法編寫函數(shù)來解決實際問題。如果需要編寫的程序非常復雜,可以將其分解為多個函數(shù),由團隊成員分工協(xié)作一同來完成;函數(shù)也需要合作,合作才能共贏。作業(yè)布置編寫函數(shù)求圓的面積教學反思編寫函數(shù)實現(xiàn)具體要求可能有多種方法,盡量引導同學們多思考,多一種解題思路就多掌握一種解決問題的方法,一題多解可以更好地培養(yǎng)學生的思維能力。情景三優(yōu)化程序的性能主題面向?qū)ο蟪绦蛟O(shè)計序號2課時2教學手段多媒體、板書、實訓室教學方法講授法、演示法、案例法教學課型□理論□實訓√一體化□(其它)教學目標能力目標:能夠使用封裝技術(shù)隱藏學生類中的屬性和方法,并間接對其進行訪問;能夠熟練掌握單繼承和多繼承的,提高了代碼的可重用性。知識目標:了解對象的概念以及如何創(chuàng)建和使用對象。素質(zhì)目標:接受新知識、自主學習的能力。教學重點類的定義、對象的創(chuàng)建與使用教學難點多態(tài)教學過程設(shè)計備注一、復習上一節(jié)上課內(nèi)容并引出本節(jié)上課內(nèi)容在上一節(jié)中我們已經(jīng)學習了函數(shù),掌握了函數(shù)的定義和調(diào)用的方法,并且通過綜合實訓的引導,能夠熟練運用多種方法編寫函數(shù)來解決實際問題。如果需要編寫的程序非常復雜,可以將其分解為多個函數(shù),由團隊成員分工協(xié)作一同來完成;函數(shù)也需要合作,合作才能共贏。本次課我們來學習論面向?qū)ο蟪绦蛟O(shè)計。二、教學內(nèi)容1、對象的引入對象(object)是一種數(shù)據(jù)抽象或數(shù)據(jù)結(jié)構(gòu)抽象,用來表示程序中需要處理或已處理的信息。Python從設(shè)計之初就是一門面向?qū)ο蟮恼Z言,它有一個重要的概念,即一切皆對象。數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊等等都是對象。將對象的特征用狀態(tài)和行為來表示,狀態(tài)就是靜態(tài)屬性,主要指對象包含的各種信息,如學號、姓名、性別、籍貫等;行為就是動態(tài)屬性,表示對象所具有的功能和操作,如學習、吃飯、體育鍛煉等。2、類的定義如果把一個個學生對象歸到一個集合,這就形成了類。類就如同模具,有了類這個模具,就可以很方便地創(chuàng)建對象了。在Python中,要創(chuàng)建一個個的對象,就要先創(chuàng)建模具,也就是先創(chuàng)建一個類。在Python的世界中也是同樣道理,要創(chuàng)建一個個的對象,就要先創(chuàng)建模具,也是先創(chuàng)建一個類。那如何定義類呢?使用關(guān)鍵字class來表示類,后面加空格再寫類名,類名后同樣需要緊跟一個重要的冒號,即class類名:,在定義類時,類名要遵循大駝峰命名法。這一行,稱為類的頭部的定義,當類頭部定義完后,就是類體的定義了。類體的定義必須換行并縮進對齊。類體中是類的成員,包括兩個部分:成員變量和成員方法。成員變量即狀態(tài),用于描述類的狀態(tài)屬性和特征。成員方法即行為,用于定義類所要進行的操作。比如定義一個汽車類,它的成員變量有:品牌、型號、顏色、價格;它的成員方法有:行駛;參考代碼如下。classCar:brand='長城'type='H6''color='黑色'price='120000'defdrive(self):print('Icanrun')3、對象的創(chuàng)建與使用汽車類創(chuàng)建完成以后,怎么通過汽車類來創(chuàng)建對象呢?這一步非常簡單,可以使用對象名=類名()來完成,此時我們要創(chuàng)建一個car1對象名,則直接通過car1=Car()來完成對象的創(chuàng)建。對象創(chuàng)建以后,該對象如何使用呢?通常使用對象名.成員變量名和對象名.方法名(參數(shù)列表),來訪問成員變量和成員方法,參考代碼如下。car1=Car() #創(chuàng)建car1對象car1.brand='長安' #訪問成員變量car1.type='CS75#調(diào)用成員方法car1.drive()4、封裝封裝(Encapsulation)是對具體對象的一種抽象,即將某些部分隱藏起來,在程序外部看不到,其含義是其他程序無法調(diào)用。要了解封裝,離不開“私有化”,就是將類或者是函數(shù)中的某些屬性限制在某個區(qū)域之內(nèi),外部無法調(diào)用。在類中把某些屬性和方法隱藏起來(或者說定義成私有的),只在類的內(nèi)部使用、外部無法訪問,或者留下少量接口(函數(shù))供外部訪問。Python中私有化的方法也比較簡單,即在準備私有化的屬性和方法名字前面加兩個下劃線(__)即可。學生類Student中成員變量年齡age和性別gender私有化;同時將成員方法學習study()封裝起來,參考代碼如下。classStudent:name='張三'__age=18__gender='男'def__study(self):print('努力學習')defeat(self):print('認真吃飯')defsleep(self):print('好好休息')5、繼承在Python中一切皆對象,這些對象都是類的實例。這么多的類,每個類都是從頭開始創(chuàng)建的嗎?比如我要給小貓創(chuàng)建一個類,再給小狗創(chuàng)建一個類、還要給小豬創(chuàng)建一個類;每個類的代碼都要打一遍,會不會太繁瑣了呀,有什么方法能夠提高編程的效率呢?小貓、小狗、小豬它們是完全不一樣的嗎?當然不是啦。它們也是有一些共同之處,比如都有兩個眼睛、兩個耳朵、四條腿,都能發(fā)出聲音;我們可以利用它們的共通點,首先創(chuàng)建一個動物Animal類,然后根據(jù)動物Animal類分別創(chuàng)建小貓子類、小狗子類和小豬子類,此時這三個子類無需編碼便可以擁有動物Animal類的方法和屬性,這就是繼承,這也是面向?qū)ο笳Z言的一個重要特征。繼承是指將一個具有廣泛意義的類定義為父類(又稱為基類或超類),新建的類可以繼承一個或者多個父類,新建的類稱為子類(派生類)。子類的創(chuàng)建語法格式如下。class子類名(父類名): 成員變量的定義(新增或修改) 成員方法的定義(新增或修改)創(chuàng)建一個動物類Animal,該類具有吃、喝、跑、睡4個方法,參考代碼如下。classAnimal:defeat(self):print('吃',end='')defdrink(self):print('喝',end='')defrun(self):print('跑',end='')defsleep(self):print('睡')再創(chuàng)建一個貓類Cat,讓它繼承動物類,品種為貍花貓,并且新增一個捉老鼠的方法;再創(chuàng)建一個狗類Dog,讓它繼承動物類,品種為中華田園犬,并且新增一個看家護院的方法;參考代碼如下。classCat(Animal):breed='貍花貓'defwork(self):print('捉老鼠')classDog(Animal):breed='
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會議室管理制度培訓
- 油氣管道保護培訓交流
- 陜西省榆林市第十四中學2024-2025學年高一上學期期中考試數(shù)學試題(無答案)
- 江西省宜春市上高二中2024-2025學年高二上學期11月月考數(shù)學試卷(含解析)
- 河北省衡水市武強中學2025屆高三上學期期中考試數(shù)學試題 含解析
- Windows Server網(wǎng)絡(luò)管理項目教程(Windows Server 2022)(微課版)課件 易月娥 項目1、2 部署虛擬環(huán)境和安裝Windows Server 2022操作系統(tǒng)、活動目錄的配置與管理
- 編程語言概述-介紹編程語言特點
- 醉翁亭記課件
- 甘肅省蘭州市2017年中考語文真題試卷(含答案)
- 2024-2025學年八年級上學期道德與法治期中模擬試卷(統(tǒng)編版+含答案解析)
- 2024年【全國】少先隊知識競賽考試題庫及答案
- 2024年宜賓市中考英語試題(附答案)
- DL∕T 5776-2018 水平定向鉆敷設(shè)電力管線技術(shù)規(guī)定
- 國際飛機租賃合同范本
- 人教版八年級歷史上冊 第一、二單元 單元測試卷( 2024年秋)
- 二次抵押貸款合同
- 高血壓公休座談會健康宣教內(nèi)容
- JT-T-617.1-2018危險貨物道路運輸規(guī)則第1部分:通則
- 內(nèi)鏡室工作人員安全防護指南
- 全國地震災(zāi)害救援技術(shù)培訓學習考試題庫(含答案)
- 阿莫西林的課件
評論
0/150
提交評論