




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python教案 教學(xué)設(shè)計(jì)課題 程序設(shè)計(jì)基--緒論教 1.了解程序設(shè)計(jì)語(yǔ)言的發(fā)展歷史學(xué) 2.理解Python語(yǔ)言的特點(diǎn)及其重要
時(shí)間:目標(biāo)教學(xué)重點(diǎn)
掌握Python語(yǔ)言Hello程序的編寫(xiě)方法掌握Python語(yǔ)言開(kāi)發(fā)的運(yùn)行環(huán)境的配置Python語(yǔ)言的特點(diǎn)及其重要性Python語(yǔ)言開(kāi)發(fā)的運(yùn)行環(huán)境的配置教學(xué)難點(diǎn)Python語(yǔ)言開(kāi)發(fā)的運(yùn)行環(huán)境的配置主要教法 講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課導(dǎo)入計(jì)算機(jī)的定義:能夠根據(jù)指令操作數(shù)據(jù)的設(shè)備計(jì)算機(jī)的兩個(gè)特性功能性可編程性計(jì)算機(jī)的可編程性需要通過(guò)程序設(shè)計(jì)來(lái)體現(xiàn)程序設(shè)計(jì)語(yǔ)言:計(jì)算機(jī)能夠理解和識(shí)別操作的一種交互體系程序設(shè)計(jì)語(yǔ)言的種類(lèi)機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言常用的程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言的執(zhí)行方法靜態(tài)語(yǔ)言:編譯執(zhí)行腳本語(yǔ)言:解釋執(zhí)行1/98編譯和解釋的區(qū)別
Python教案 教學(xué)設(shè)計(jì)編譯:一次性的翻譯,需對(duì)目標(biāo)代碼優(yōu)化解釋?zhuān)好看芜\(yùn)行都需要編譯:源代碼(高級(jí)語(yǔ)言)轉(zhuǎn)換成目標(biāo)代碼(機(jī)器語(yǔ)言)解釋?zhuān)涸创a逐條轉(zhuǎn)化成目標(biāo)代碼同時(shí)逐條運(yùn)行目標(biāo)代碼的過(guò)程編譯的好處目標(biāo)代碼執(zhí)行速度更快目標(biāo)代碼在相同操作系統(tǒng)上使用靈活解釋的好處便于維護(hù)源代碼良好的可移植性Python計(jì)算機(jī)已成為普通工具學(xué)會(huì)編程:滿(mǎn)足感和安全感C/C++等語(yǔ)言:復(fù)雜Python語(yǔ)言:充滿(mǎn)快樂(lè)和創(chuàng)造性的全新旅程?Python語(yǔ)言概述Python語(yǔ)言的歷史誕生于 1989年,已有25年,達(dá)到成熟期– 2000年,Python2.0,2,.7.6– 2008年,Python3.0,3.4.xPython語(yǔ)言的特點(diǎn)強(qiáng)制縮進(jìn)保證可讀性不需要主函數(shù)可以同時(shí)被解釋和編譯執(zhí)行語(yǔ)言簡(jiǎn)潔2/98Python教案 教學(xué)設(shè)計(jì)編程模式靈活(面向過(guò)程和面向?qū)ο螅㏄ython語(yǔ)言的開(kāi)發(fā)環(huán)境配置Python運(yùn)行環(huán)境PythonPython基本開(kāi)發(fā)和運(yùn)行環(huán)境,網(wǎng)址:根據(jù)操作系統(tǒng)選擇不同版本Python2.7.6版本程序,跟隨提示安裝Python運(yùn)行環(huán)境Windowspython,在>>>Pythonexit()quit()退出IDLEPython運(yùn)行環(huán)境,hello.pyWindows命令行,使用命令pythonhello.py來(lái)運(yùn)行文件Python運(yùn)行環(huán)境IDLE,Ctrl+NF5即可運(yùn)行該程序PythonEclipse等面向較大規(guī)模項(xiàng)目開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境中PythonWindows上的配置方法類(lèi)似Hello程序你的第一個(gè)程序:在屏幕上打印出“Helloprint“Hello顯示效果如下:二、上機(jī)練習(xí)Python接著完成第一個(gè)程序“Hello三、本課小結(jié)計(jì)算機(jī)的基本概念程序設(shè)計(jì)語(yǔ)言分類(lèi)編譯和解釋Python語(yǔ)言概述Python的Hello程序編寫(xiě)及開(kāi)發(fā)環(huán)境配置課后反思3/98PAGEPAGE8/98時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)
Python教案 教學(xué)設(shè)計(jì)Python程序語(yǔ)言入門(mén)讓學(xué)生了解什么是編程及對(duì)編程提起濃厚的學(xué)習(xí)興趣;·PythonShell、GUI和Prompt(提示符)的理解;·學(xué)會(huì)與Python交互的方法,print指令;·新建程序文本文檔、運(yùn)行程序的方法、保存時(shí)需要注意什么;·學(xué)會(huì)怎樣去查詢(xún)程序的錯(cuò)誤;·讓學(xué)生對(duì)編程提起濃厚的興趣;·print指令的運(yùn)用;·識(shí)別和修正程序的錯(cuò)誤。·識(shí)別和修正程序的錯(cuò)誤;講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、復(fù)習(xí)鞏固1、什么是編程?2、Python-我們和計(jì)算機(jī)溝通的語(yǔ)言所想要表達(dá) 編程軟件翻 計(jì)算機(jī)接的意思 譯成二進(jìn)制 并執(zhí)行常用、最流行的幾種程序語(yǔ)言:C、C++、C#、Java、VB、python3、Python可以用來(lái)做什么·開(kāi)發(fā)游戲&軟件(python編寫(xiě);·Flas(webflashgame;·創(chuàng)建數(shù)據(jù)庫(kù);·hacke(or軟件;·發(fā)明變形金剛2006FANUC推出的人工智能機(jī)器人;·學(xué)習(xí)其他語(yǔ)言的基礎(chǔ)(所有程序語(yǔ)言都有共同性,學(xué)好python理解其他程序語(yǔ)言;·python幾乎無(wú)所不能。========python的人都能成功================ 但是學(xué)習(xí)python你將獲利以下幾點(diǎn) ========√讓你的思維更加敏捷!√讓你變的知識(shí)淵博!√讓你學(xué)習(xí)更多的英文!============ 也有可能帶來(lái)一些“負(fù)面影響”===========×你的皮膚會(huì)變得粗糙>_<×你可能會(huì)變成一枚宅男╯□╰×花500元買(mǎi)一副眼鏡⊙﹏⊙二、上機(jī)操作從IDLE啟動(dòng)pythonPython教案 教學(xué)設(shè)計(jì)1、通過(guò)開(kāi)始菜單;好比三種第一種:2B青年三種方法2、通過(guò)快捷方式;第二種:普通青年3、通過(guò)快捷鍵;網(wǎng)絡(luò)青年第三種:文藝青年·窗口標(biāo)題欄的文字“PythonShell”-中文意思是“python與程序交互途徑的一種。·GU”-中文意思是“圖形用戶(hù)界面GUI按鈕、滾動(dòng)條等。沒(méi)有這些特性的程序叫做文本模式程序command命令行程序)*GUItext-mode、commandline?(答案:windows窗口 DOS)·-叫做提示符(Prompt,指程序正在等待你鍵入信息時(shí)顯示的符號(hào)。三、來(lái)點(diǎn)指令吧!>>>print“Heyman!”回車(chē)(每輸入完一行指令都要輸入回車(chē)以跳轉(zhuǎn)到下一行)Print-打?。?,指在屏幕上顯示文本,而不是常說(shuō)的用打印機(jī)打印在紙上。顏色<<問(wèn):IDEL里為什么會(huì)有這些奇妙的顏色呢?不同的部分,print的顏色就是橙色。錯(cuò)誤<<問(wèn):SyntaxError:invalidsyntax是個(gè)什么東西?答:直譯“語(yǔ)法錯(cuò)誤:無(wú)效的語(yǔ)法python不懂你輸入的內(nèi)容,因?yàn)閜rintpoint。四、與python交互我們剛剛執(zhí)行的第一條指令:heymanpython交流的過(guò)程就叫做交互。多試一條指令!>>>print5+38>>>計(jì)算機(jī)非常擅長(zhǎng)算術(shù)運(yùn)算,計(jì)算機(jī)被創(chuàng)造出來(lái)的初期就是被用來(lái)數(shù)據(jù)計(jì)算。再試一條指令!>>>print5*315>>>======Mr.LeeTIPS======幾乎所有計(jì)算機(jī)程序和語(yǔ)言中都使用*符號(hào)作為乘號(hào)。這個(gè)符號(hào)稱(chēng)作“星號(hào)”或“星======口算&計(jì)算器&python三者進(jìn)行對(duì)比吧======口算:Print5*3計(jì)算器:Print98765431-9876543Python:Print45487548755421*544451484484121512157======口算&計(jì)算器&python三者進(jìn)行對(duì)比吧======利用python你除了可以超大數(shù)的數(shù)學(xué)計(jì)算之外,你還可以做些令人意想不到的事情,例如:Python教案 教學(xué)設(shè)計(jì)>>>print“Dog”+“brother”Dogbrother>>或者>>>print“whereisplane”*20whereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplane>>>20句whereisplaneMH370前提是馬航要給力還有就是不要停電……五、編程任務(wù)python1、創(chuàng)建程序的方法:a.PythonShell菜單欄→File→NewWindows創(chuàng)建;b.快捷鍵:Ctrl+N。*新程序窗口標(biāo)題欄顯示“Untitled(未命名。如何給程序取名字2、程序1 我們的第一個(gè)程序-“我愛(ài)吃香蕉”printprint“香蕉”*20print“mua”*40print3、保存/另存(命名)你的程序文檔File→Save/SaveAs輸入完指令后通過(guò) Save快:Ctrl+N 保存or另存為SaveAs快:Ctrl+Shift+S擴(kuò)展名輸入完程序名稱(chēng)后一定不要忘了加上.py,否則在python中將看不到程序中命令的顏色和windows不知道該用什么程序來(lái)打開(kāi)這個(gè)文件。======Mr.LeeTIPS======如果你想要你的程序支持中文,需要在程序的第一行加上代碼:#encodingXXX#XXX例如,簡(jiǎn)體中文的代碼是:GBK,那么程序的第一行應(yīng)寫(xiě)上:#encodingGBK#======Mr.LeeTIPS======六、如果出了問(wèn)題在編程過(guò)程中容易出現(xiàn)的問(wèn)題歸納為兩大類(lèi):1、syntaxerro(語(yǔ)法錯(cuò)誤某個(gè)內(nèi)容不是正確的Python代碼。例如:Python教案 教學(xué)設(shè)計(jì)>>>printwhereisplane”syntaxerror:invalidsyntax(語(yǔ)法錯(cuò)誤:無(wú)效的語(yǔ)法)there'sanerrorisyourprogram(這是一個(gè)錯(cuò)誤的程序)>>>錯(cuò)誤原因:where前面漏了一個(gè)引號(hào)2runtime運(yùn)行時(shí)錯(cuò)誤IDLE或python無(wú)法檢測(cè)出來(lái)的錯(cuò)誤。例如:程序2 運(yùn)行時(shí)錯(cuò)誤-“我愛(ài)大鱷魚(yú)”>>>printprint“我的動(dòng)物園有好多好多的動(dòng)物,例如:”print“鱷魚(yú)”+5>>>錯(cuò)誤原因:IDLE1.2.1 ========NoSubprocess=========>>>你好!歡迎來(lái)到我的動(dòng)物園!我的動(dòng)物園有好多好多的動(dòng)物,例如:Traceback(mostrecentcalllast):(錯(cuò)誤的開(kāi)始)File“C:\Users\Administrator\Destop\ilovebigcayman.py”,line4,in<module>(錯(cuò)誤發(fā)生的位置/程序文件保存的路徑)Print“鱷魚(yú)”+5(出錯(cuò)的代碼行)TypeError:cannotconcatenate‘str’and‘int’objects(python認(rèn)為可能存在的問(wèn)題,并不一定是在這里,但是會(huì)在這附近)=====================思 考=====================為嘛print“鱷魚(yú)”*5可以,print“鱷魚(yú)”+5卻不行?=====================解 惑=====================聽(tīng)我說(shuō),這有點(diǎn)像將蘋(píng)果和鱷魚(yú)放在一起,在python放在一起,比如說(shuō)數(shù)字int)和文本str+55388個(gè)什么?完全沒(méi)有意義。155(克隆大亂斗。七、第二個(gè)程序任務(wù)第一個(gè)程序“我愛(ài)吃香蕉NumGuess”是個(gè)不錯(cuò)的名字。File→NewWindows→Save→“NumGuess.py”輸入以下代碼:======================================================#encoding=GBK#importrandomsecret=random.randint(1,100)guess=0tries=0Python教案 教學(xué)設(shè)計(jì)print"你好,同學(xué)……我和你們班主任之間有一個(gè)秘密!?"print1-996可以獲贈(zèng)加多寶一罐!"whileguess!=secretandtries<6:guess=input("來(lái)猜個(gè)數(shù)字吧???")ifguess<secret:print"太低了喔!~"elifguess>secret:print"太高了喔!~"tries=tries+1ifguess==secret:print"else:print"我不會(huì)給你更多機(jī)會(huì)了,同學(xué)!你現(xiàn)在得請(qǐng)我喝一瓶王老吉!"print"這個(gè)秘密數(shù)字就是————",secret======================================================程序解析:whileif、else、elif和input程序概念點(diǎn):由程序隨機(jī)選取秘密數(shù)。用戶(hù)輸入他猜的數(shù)。程序根據(jù)秘密數(shù)檢查用戶(hù)猜的結(jié)果:太大還是太小?用戶(hù)不斷嘗試,直到猜出這個(gè)數(shù),或者用完所有機(jī)會(huì)。猜到的數(shù)與秘密數(shù)一致時(shí),玩家獲勝。>>>教學(xué)過(guò)程結(jié)束。課堂小結(jié):IDLE;了解了交互模式;8/98PAGEPAGE10/98Python教案 教學(xué)設(shè)計(jì)Python一些指令來(lái)執(zhí)行;Python知道如何完成算術(shù)運(yùn)算(包括非常大的數(shù));啟動(dòng)IDLE文本編輯器鍵入你的第一個(gè)程序:我愛(ài)吃香蕉;Python程序;了解如何查看錯(cuò)誤消息;Python程序:猜數(shù)游戲。課堂練習(xí)之用腦想一想:IDLE?print的作用是什么?Python中表示乘法和除法的符號(hào)是什么?GUI的特性包括哪些?如果想要你的程序支持中文,需要做什么?課堂練習(xí)之動(dòng)手做一做:在交互模式中,使用Python計(jì)算一周有多少分鐘。3(果應(yīng)該是下面這樣)XXXX我1988年08月20日出生。我最喜歡的顏色是粉紅色。課后反思Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)目標(biāo)教學(xué)重點(diǎn)
判斷循環(huán)if完成條件語(yǔ)句實(shí)例:登錄認(rèn)證模塊學(xué)會(huì)判斷輸入是否合法了解三元表達(dá)式掌握循環(huán)語(yǔ)句for語(yǔ)句while掌握break、continue、pass完成循環(huán)語(yǔ)句實(shí)例:登錄認(rèn)證模塊擴(kuò)展if了解三元表達(dá)式掌握循環(huán)語(yǔ)句for語(yǔ)句while掌握break、continue、pass完成條件語(yǔ)句實(shí)例:登錄認(rèn)證模塊完成循環(huán)語(yǔ)句實(shí)例:登錄認(rèn)證模塊擴(kuò)展講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授掌握if語(yǔ)句單分支if表達(dá)式:代碼塊1else:代碼塊雙分支if表達(dá)式1:elif2多分支Python教案 教學(xué)設(shè)計(jì)if表達(dá)式1:代碼塊1elif代碼塊2…else:代碼塊_其他嵌套了解三元表達(dá)式Expression1ifboolean_expressionelseExpression2AB,maxA,maxB如:max=AifA>BelseB例如:掌握range()range(例:range(n):產(chǎn)生從0開(kāi)始,到n的數(shù)字序列,不包括n。range(m,n)mnn。range(m,n,k)mn,kn掌握循環(huán)語(yǔ)句掌握f(shuō)or語(yǔ)句語(yǔ)法格式:forexpression1 initerable:for_suiteelse:11/98Python教案 教學(xué)設(shè)計(jì)else_suite例如:結(jié)果:12/98while
Python教案 教學(xué)設(shè)計(jì)掌握break、continue、pass語(yǔ)法結(jié)構(gòu):whileboolean_expression:while_suiteelse:else_suite解釋?zhuān)篵oolean_expressionTrue,;boolean_expressionFalseelse以上結(jié)構(gòu)中,elseelsebreakelse例如:13/98Python教案 教學(xué)設(shè)計(jì)break:跳出所處的最近層循環(huán)continue:跳到所處的最近層循環(huán)的開(kāi)始處pass:占位語(yǔ)句例如:執(zhí)行結(jié)果:14/98Python教案 教學(xué)設(shè)計(jì)二、上機(jī)練習(xí)條件語(yǔ)句實(shí)例:登錄認(rèn)證模塊判斷輸入是否合法非法用戶(hù)提示警告信息合法用戶(hù)提示登錄成功username=raw_input("username:")ifusername=='':print"用戶(hù)名不能為空"else:print"\033[1;33;45m登錄成功,歡迎%s\033[0m"%usernamechr()ord()循環(huán)語(yǔ)句實(shí)例:登錄認(rèn)證模塊擴(kuò)展直接回車(chē)無(wú)效,繼續(xù)輸入驗(yàn)證用戶(hù)身份是否合法三、課堂小結(jié)if語(yǔ)句:?jiǎn)畏种А㈦p分支、多分支、嵌套、三元表達(dá)式rang(forwhile、break、continue、pass登錄認(rèn)證模塊展示課后反思15/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題 python序列-字符串了解序列類(lèi)型常用操作了解索引和切片教學(xué)目標(biāo)教學(xué)重點(diǎn)
掌握類(lèi)型轉(zhuǎn)化掌握強(qiáng)制類(lèi)型轉(zhuǎn)化學(xué)會(huì)字符串轉(zhuǎn)換實(shí)例:格式化輸出菜單列表,將用戶(hù)的輸入數(shù)值轉(zhuǎn)化整型并驗(yàn)證掌握字符串常用方法s.find()s.join()s.replace()s.split()s.strip()s.index()s.startswith/s.endswith(t)s.isalnum()/s.isalpha()/s.isdigit()/isupper()/islower()s.upper()/ s.lower()/s.ss.count()了解序列類(lèi)型常用操作了解索引和切片掌握類(lèi)型轉(zhuǎn)化掌握強(qiáng)制類(lèi)型轉(zhuǎn)化講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授序列類(lèi)型常用操作索引和切片1.1.1 0-1開(kāi)始1.1.2 切片:例:s[0:2]1.1.3 :,例:s[0:9:2]掌握類(lèi)型轉(zhuǎn)化16/98格式:
Python教案 教學(xué)設(shè)計(jì)print“字符串%format1%format2…”%(變量或值1,變量或值2...)符號(hào)及其對(duì)應(yīng)輸出格式:%d%i 十進(jìn)制整數(shù)或長(zhǎng)整數(shù)%f 浮點(diǎn)數(shù)%s 字符串%% 舉例:強(qiáng)制類(lèi)型轉(zhuǎn)化(例如:注意:只能將由數(shù)字組成的字符串轉(zhuǎn)換為整型錯(cuò)誤用法(:強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型例如17/98Python教案 教學(xué)設(shè)計(jì)str():強(qiáng)制轉(zhuǎn)換為字符串例如:掌握字符串常用方法s.fin(tt,s.join(iter)siter如:list2=["h","e","l","l","o",".","c","o","m"]“”.join(list2)s.replac(old,new:替換s.spli(sepsepstr=str.split(".")得到["www","baidu","com"]序列s.strip(t):s1.strip()18/98Python教案 教學(xué)設(shè)計(jì)s.inde(ttt/trues.isalnum()/s.isalpha()/s.isdigit()/isupper()/islower():判斷所有字符是否為數(shù)字或字母/是否為字母/是否為數(shù)字結(jié)果是bools.upper()/ s.lower()/s.s:所有字母轉(zhuǎn)化為大寫(xiě)字母/小寫(xiě)字母,大小寫(xiě)互換s.count(t)統(tǒng)計(jì)t出現(xiàn)的次數(shù)二、上機(jī)練習(xí)并驗(yàn)證19/98Python教案 教學(xué)設(shè)計(jì)三、本課小結(jié)序列類(lèi)型常用操作、索引和切片、類(lèi)型轉(zhuǎn)化、強(qiáng)制類(lèi)型轉(zhuǎn)化、字符串常用方法學(xué)生展示:字符串轉(zhuǎn)換實(shí)例課后反思20/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)
掌握列表基礎(chǔ)知識(shí)掌握列表相關(guān)方法掌握序列類(lèi)型操作掌握生成器掌握元組類(lèi)型掌握元組相關(guān)方法掌握列表相關(guān)方法掌握序列類(lèi)型操作掌握生成器掌握元組類(lèi)型掌握列表相關(guān)方法掌握元組相關(guān)方法
python列表和元祖講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授掌握列表基礎(chǔ)知識(shí)列表的特點(diǎn):支持異構(gòu):一個(gè)列表中含不同類(lèi)型的對(duì)象支持嵌套:即列表中的元素可以是列表可變:支持通過(guò)索引,切片,進(jìn)行修改如何定義列表::list1=[1,3,5]方法二:使用內(nèi)置函數(shù)list():內(nèi)建函數(shù)list(a_sequence)可以將一個(gè)序列轉(zhuǎn)為列表例1:>>>str1="dddgf">>>list1=list(str1)>>>list1['d','d','d','g','f']例2:(后面講)21/98Python教案 教學(xué)設(shè)計(jì)>>>tuple1=(1,2,1)>>>list1=list(tuple1)>>>list1[1,2,1]例3:掌握列表相關(guān)方法:append(例如:extend(1:list2=[1,2,3]list3=[]list3.extend(list2)例222/98Python教案 教學(xué)設(shè)計(jì)insert(列表也支持索引,例如:插入例子:23/98Python教案 教學(xué)設(shè)計(jì)pop(例如:24/98Python教案 教學(xué)設(shè)計(jì)remove(例如:count(:統(tǒng)計(jì)指定值出現(xiàn)的次數(shù)index():例如:reverse(例如:25/98Python教案 教學(xué)設(shè)計(jì)查詢(xún)遍歷:forIinfori,kenument(list)sort(:排序掌握序列類(lèi)型操作:序列類(lèi)型包括:字符串、列表、元組3.1 +連接*例如:3.2 max():求最大值、min():例如:26/98Python教案 教學(xué)設(shè)計(jì)掌握列表生成式列表生成式,是Python內(nèi)置的一種極其強(qiáng)大的生成list的表達(dá)式。用于:基于已有列表生成新列表語(yǔ)法結(jié)構(gòu):列表生成式的書(shū)寫(xiě)格式:[x*xforxinrange(1,11)]第一:把要生成的元素x*x放到前面第二:后面跟上for循環(huán)listif舉例:1到10之間的偶數(shù)平方再除以2 作為新列表元素110特點(diǎn):一次性生成新列表,如果列表數(shù)據(jù)過(guò)大,會(huì)消耗大量資源。掌握元組類(lèi)型定義元組:()例:tuple1=(1,3,4)方法二:使用內(nèi)置函數(shù)tuple():將可迭代對(duì)象中所有元素作為元組元素27/98Python教案 教學(xué)設(shè)計(jì)例:>>>list1=[1,2,3]>>>t1=tuple(list1)>>>t1(1,2,元組的特點(diǎn)支持異構(gòu);支持嵌套;不可變:不支持通過(guò)索引、切片,進(jìn)行修改例如:掌握元組相關(guān)方法inde(:返回指定元素第一28/98Python教案 教學(xué)設(shè)計(jì)coun(例如:二、上機(jī)練習(xí)練習(xí):三、本課小結(jié)列表基礎(chǔ)知識(shí)、列表相關(guān)方法、序列類(lèi)型操作、生成器、元組類(lèi)型、元組相關(guān)方法學(xué)生完成實(shí)例操作課后反思29/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)主要教法
添加計(jì)算機(jī)刪除計(jì)算機(jī)查詢(xún)可管理計(jì)算機(jī)登錄模塊實(shí)現(xiàn)查詢(xún)可管理計(jì)算機(jī)
運(yùn)維平臺(tái)計(jì)算機(jī)管理實(shí)例講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、學(xué)習(xí)任務(wù)二、上機(jī)練習(xí)學(xué)生上機(jī)實(shí)操:提示:30/98Python教案 教學(xué)設(shè)計(jì)三、任務(wù)展示與評(píng)價(jià)學(xué)生進(jìn)行展示,完成互評(píng)與老師點(diǎn)評(píng)項(xiàng)目 分值 評(píng)價(jià)標(biāo)準(zhǔn)
得分自評(píng) 組評(píng) 師評(píng)20程序設(shè)計(jì)30運(yùn)行結(jié)果 30小組配合 總體得分課后反思
編程技巧調(diào)試過(guò)程搭建合理穩(wěn)固小組成員分工及配合方面31/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)
掌握字典類(lèi)型掌握字典的遍歷掌握集合類(lèi)型掌握集合相關(guān)方法掌握字典的遍歷掌握集合類(lèi)型掌握字典的遍歷
python字典和集合講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授掌握字典類(lèi)型字典的特點(diǎn)無(wú)序:通過(guò)鍵實(shí)現(xiàn)元素存取,故無(wú)序可變:可以通過(guò)鍵進(jìn)行改變異構(gòu):支持多種數(shù)據(jù)類(lèi)型嵌套:可以在鍵值對(duì)中的值部分出現(xiàn)字典定義字典:{,:}方法二:dict()內(nèi)置函數(shù):指定鍵值例:d2=dict(name="jerry",age="45",gender="m")關(guān)鍵點(diǎn):分開(kāi);分開(kāi);字典中的鍵必須是唯一的,而值可以不唯一掌握字典相關(guān)方法2.1更新或添加元素:dict1[key]=value例如:32/98Python教案 教學(xué)設(shè)計(jì)i(例如:(例如:alue(例如:33/98Python教案 教學(xué)設(shè)計(jì)as_ke(:判斷是否存在某個(gè)鍵,返回結(jié)果e或例如:del:python自身函數(shù)刪除例如:len()例如:34/98Python教案 教學(xué)設(shè)計(jì)(例如:(例如:(:彈出指定鍵對(duì)應(yīng)的值(:隨機(jī)彈出鍵值對(duì)35/98Python教案 教學(xué)設(shè)計(jì)例如:
clear():清除所有元素掌握字典的遍歷:掌握集合類(lèi)型36/98Python教案 教學(xué)設(shè)計(jì)什么是集合無(wú)序、互異,支持迭代不支持索引,切片元素唯一set{元素}方法二:內(nèi)置函數(shù)set()例:集合相關(guān)方法:l(例如:ad(例如:刪除元素37/98Python教案 教學(xué)設(shè)計(jì)例如:(例如:pop()例如:集合關(guān)系操作t的并集例如:38/98Python教案 教學(xué)設(shè)計(jì)例如:t的交集例如:s集合而不存在于t集合中的例如:39/98Python教案 教學(xué)設(shè)計(jì)二、上機(jī)練習(xí)學(xué)生上機(jī)完成字典類(lèi)型、字典相關(guān)方法、字典的遍歷、集合類(lèi)型、集合相關(guān)方法的案例練習(xí)。三、本課小結(jié)字典類(lèi)型、字典的遍歷、集合類(lèi)型、集合相關(guān)方法課后反思40/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)
掌握如何創(chuàng)建文件對(duì)象掌握open()掌握open()的附加模式掌握文件對(duì)象的相關(guān)方法掌握文件對(duì)象的相關(guān)屬性掌握如何創(chuàng)建文件對(duì)象掌握open()掌握open()的附加模式掌握文件對(duì)象的相關(guān)方法掌握文件對(duì)象的相關(guān)屬性
python文件處理主要教法
講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授掌握如何創(chuàng)建文件對(duì)象open()file():用于打開(kāi)文件和創(chuàng)建文件對(duì)象,返回文件對(duì)象with打開(kāi)文件:withopen('password')asf:#f=file('password')語(yǔ)法格式:open(例如:41/98Python教案 教學(xué)設(shè)計(jì)open()三種基本模式r:例:w:寫(xiě)入(覆蓋原有內(nèi)容,如果文件不存在,會(huì)創(chuàng)建文件1:passwordw結(jié)果:passwd42/98Python教案 教學(xué)設(shè)計(jì)a:附加(從文件尾部追加例如:open()的附加模式aaa+可讀寫(xiě)模式,寫(xiě)只能寫(xiě)在文件末尾處w+a+的區(qū)別是要清空文件內(nèi)容r+a+的區(qū)別是可以寫(xiě)到文件任何位置43/98Python教案 教學(xué)設(shè)計(jì)readline():返回一行readlines():列表類(lèi)型返回所有行內(nèi)容read(示。tell():當(dāng)前指針在文件中的位置(多少個(gè)字節(jié)的位置)seek():定義文件指針的偏移量f.seek(偏移量,選項(xiàng))writ(:將字符串寫(xiě)入文件writelines():將字符序列寫(xiě)入flush(sldkjalsjaslkjdclose():關(guān)閉文件例如:44/98Python教案 教學(xué)設(shè)計(jì)例2:掌握文件對(duì)象的相關(guān)屬性mode:文件打開(kāi)模式name:返回文件名closed例如:45/98Python教案 教學(xué)設(shè)計(jì)二、上機(jī)練習(xí)學(xué)生上機(jī)完成創(chuàng)建文件對(duì)象、open()三種基本模式、open()的附加模式、文件對(duì)象的相關(guān)上機(jī)練習(xí),熟練完成Python創(chuàng)建文件對(duì)象的方法。三、本課小結(jié)如何創(chuàng)建文件對(duì)象、open()open()的附加模式、掌握文件對(duì)象的相關(guān)方法掌握文件對(duì)象的相關(guān)屬性課后反思46/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)
掌握什么是函數(shù)掌握函數(shù)的定義掌握函數(shù)的調(diào)用
函數(shù)式編程一目標(biāo)教學(xué)重點(diǎn)
掌握函數(shù)形參和實(shí)參的區(qū)別了解函數(shù)的作用域:什么是作用域、作用域分類(lèi)掌握函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)掌握函數(shù)的調(diào)用掌握函數(shù)形參和實(shí)參的區(qū)別了解函數(shù)的作用域:什么是作用域、作用域分類(lèi)掌握函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授掌握什么是函數(shù)function功能defpython函數(shù)將相關(guān)功能打包并參數(shù)化,將復(fù)雜的系統(tǒng)分解成可管理的部件。掌握函數(shù)的定義在這里說(shuō)明幾點(diǎn):Pythondef關(guān)鍵字進(jìn)行函數(shù)的定義,不用指定返回值的類(lèi)型。函數(shù)參數(shù)params可以是零個(gè)、一個(gè)或者多個(gè),同樣的,函數(shù)參數(shù)也不用指定參數(shù)類(lèi)型Python會(huì)自動(dòng)根據(jù)值來(lái)維護(hù)其類(lèi)型。return語(yǔ)句是可選的,它可以在函數(shù)體內(nèi)任何地方出現(xiàn),表示函數(shù)調(diào)用執(zhí)行到此結(jié)束;如47/98Python教案 教學(xué)設(shè)計(jì)果沒(méi)有return語(yǔ)句,會(huì)自動(dòng)返回NONE,如果有return語(yǔ)句,但是return后面沒(méi)有接表達(dá)式或者值的話(huà)也是返回NONE。下面看例子:例1:2:3:掌握函數(shù)的調(diào)用函數(shù)調(diào)用的方法:函數(shù)名(實(shí)際參數(shù))48/98Python教案 教學(xué)設(shè)計(jì)在Python中不允許前向引用,即在函數(shù)定義之前,不允許調(diào)用該函數(shù)例如下面的錯(cuò)誤:掌握函數(shù)形參和實(shí)參的區(qū)別def關(guān)鍵字定義函數(shù)時(shí)函數(shù)名后面括號(hào)里的變量稱(chēng)作為形式參數(shù)。例如:了解函數(shù)的作用域什么是作用域變量的作用域:即變量能夠使用的范圍作用域分類(lèi)本地作用域:定義在函數(shù)體內(nèi)的變量(局部變量)在Python不能調(diào)用里層中的變量,并且當(dāng)外層和里層有同名變量時(shí),外層變量會(huì)被里層變量屏蔽掉,例如:49/98Python教案 教學(xué)設(shè)計(jì)在函數(shù)function中,while循環(huán)外面和while循環(huán)里面都有變量x,此時(shí),while循環(huán)外面的變量x會(huì)被屏蔽掉。注意在函數(shù)內(nèi)部定義的變量作用域都僅限于函數(shù)內(nèi)部,在函數(shù)外部是不能夠調(diào)用的,一般稱(chēng)這種變量為局部變量。全局作用域:定義在主程序的變量(全局變量)但是如果要在函數(shù)內(nèi)部改變?nèi)肿兞?,必須使用global關(guān)鍵字進(jìn)行聲明掌握函數(shù)的參數(shù)50/98Python教案 教學(xué)設(shè)計(jì)默認(rèn)參數(shù):定義函數(shù)時(shí)“name=value”的形式設(shè)置參數(shù)默認(rèn)值在Python中默認(rèn)的是采用位置參數(shù)來(lái)傳參。這樣調(diào)用函數(shù)必須嚴(yán)格按照函數(shù)定義時(shí)的參數(shù)個(gè)數(shù)和位置來(lái)傳參,從左至右進(jìn)行匹配,否則將會(huì)出現(xiàn)預(yù)想不到的結(jié)果調(diào)用函數(shù)時(shí)默認(rèn)參數(shù)放后邊調(diào)用函數(shù)時(shí),使用“name=value”的形式通過(guò)參數(shù)名指定,參數(shù)指定了默認(rèn)值后,如果傳參時(shí)不指定參數(shù)名,則會(huì)從左到右依次進(jìn)行傳參,關(guān)鍵參數(shù)要放在普通參數(shù)后面。例如:51/98Python教案 教學(xué)設(shè)計(jì)可變參數(shù)我們要定義一個(gè)函數(shù)的時(shí)候,必須要預(yù)先定義這個(gè)函數(shù)需要多少個(gè)參數(shù)(或者說(shuō)可以接受多少個(gè)參數(shù)。一般情況下這是沒(méi)問(wèn)題的,但是也有在定義函數(shù)的時(shí)候,不能知道參數(shù)個(gè)數(shù)的情況在Python*這里接收的是元組數(shù)據(jù)例2:**kwargs,字典作為參數(shù):定義函數(shù)時(shí)使用 **開(kāi)頭的參數(shù),調(diào)用時(shí)使用“name=value ”的形式,作為傳遞進(jìn)來(lái)字典的鍵值52/98Python教案 教學(xué)設(shè)計(jì)二、上機(jī)練習(xí)三、本課小結(jié)什么是函數(shù)函數(shù)的定義函數(shù)的調(diào)用函數(shù)形參和實(shí)參的區(qū)別函數(shù)的作用域:什么是作用域、作用域分類(lèi)函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)課后反思53/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)
遞歸函數(shù)掌握l(shuí)ambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器遞歸函數(shù)掌握l(shuí)ambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)
函數(shù)式編程二主要教法
講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授個(gè)函數(shù)就是遞歸函數(shù);例1例254/98Python教案 教學(xué)設(shè)計(jì)lambdalambdadef名稱(chēng)的語(yǔ)法:lambda參數(shù):表達(dá)式lambdalambda舉例:f1=lambdax,y:x+yf1(2,3)和map函數(shù)共同使用:Map()例如:55/98Python教案 教學(xué)設(shè)計(jì)Lambda和map共同使用enumerate56/98Python教案 教學(xué)設(shè)計(jì)yield函數(shù):yield的作用就是把一個(gè)函數(shù)變成一個(gè)generator,帶有yield數(shù)不再是一個(gè)普通函數(shù),Python解釋器會(huì)將其視為一個(gè)generator例如:裝飾器1:57/98Python教案 教學(xué)設(shè)計(jì)例如2:58/98PAGEPAGE60/98其中@語(yǔ)法糖:相當(dāng)于run=login(run)二、上機(jī)練習(xí)學(xué)生上機(jī)完成本節(jié)函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)遞歸函數(shù)掌握l(shuí)ambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)其中@語(yǔ)法糖:相當(dāng)于run=login(run)二、上機(jī)練習(xí)學(xué)生上機(jī)完成本節(jié)函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)遞歸函數(shù)掌握l(shuí)ambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器課后反思Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)主要教法
常用模塊一了解什么是模塊了解模塊和文件掌握導(dǎo)入模塊:模塊搜索路徑、import語(yǔ)句導(dǎo)入模塊、from語(yǔ)句導(dǎo)入模塊os模塊及方法:系統(tǒng)相關(guān)、目錄相關(guān)、路徑相關(guān)、文件相關(guān)、查詢(xún)相關(guān)了解模塊和文件掌握導(dǎo)入模塊os模塊及方法:講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授了解什么是模塊模塊是一個(gè)包含定義的變量,函數(shù)和類(lèi)的文件,其后綴名是.py。模塊可以被其他程序?qū)耄允褂迷撃K中的變量,函數(shù)和類(lèi)。了解模塊和文件if name ==" main ":print‘xxxx’如果作為程序文件獨(dú)立執(zhí)行, name 變量值為 main ,則執(zhí)行if name ==" main ":后的語(yǔ)句。如果作為模塊導(dǎo)入其他文件, name 變量值為模塊名,則不執(zhí)行if name ==" main 行。掌握導(dǎo)入模塊importsysprintsys.path查看以列表顯示的搜索路徑例如:Python教案 教學(xué)設(shè)計(jì)importimportmoduleasmodule_alias以別名導(dǎo)入模塊from語(yǔ)句導(dǎo)入模塊frommodulesimportnames導(dǎo)入模塊的指定屬性或方法os(實(shí)現(xiàn)跨平臺(tái)的操作系統(tǒng)應(yīng)用接口)window'nt'表示,對(duì)于Linux/Unix'posix'例如:調(diào)用系統(tǒng)命令的方法os.system():調(diào)用操作系統(tǒng)的命令;例如61/98Python教案 教學(xué)設(shè)計(jì)os.popen()例如:目錄相關(guān)的方法:getcwd(pn;例如:62/98Python教案 教學(xué)設(shè)計(jì)chdir(:切換目錄;例如:os.walk():walk(top,topdown=True,onerror=None)listdir(:列出指定目錄下文件及子目錄;如:63/98Python教案 教學(xué)設(shè)計(jì)顯示c盤(pán)文件和目錄:64/98Python教案 教學(xué)設(shè)計(jì)mkdir(:創(chuàng)建目錄;如:65/98Python教案 教學(xué)設(shè)計(jì)makedirs():創(chuàng)建多層級(jí)目錄;如:66/98Python教案 教學(xué)設(shè)計(jì)rmdir(:刪除空目錄;例如:removedirs(:刪除多層級(jí)空目錄;例如:路徑相關(guān)的方法:os.path.split():函數(shù)返回一個(gè)路徑的目錄名和文件名;例如:67/98Python教案 教學(xué)設(shè)計(jì)os.path.abspath(name):獲得絕對(duì)路徑;如:os.path.splitext():分離文件名與擴(kuò)展名,例如:os.path.join(path,name):連接目錄與文件名或目錄,例如:68/98Python教案 教學(xué)設(shè)計(jì)文件相關(guān)的方法:remove(:刪除文件,如:rename(:重命名文件,如查詢(xún)相關(guān)方法os.path.exists():os.path.isfile()和os.path.isdir()函數(shù)分別檢驗(yàn)給出的路徑是一個(gè)文件還是目錄。例如:islink(:是否為鏈接文件文件信息相關(guān)方法:stat(:查看文件狀態(tài)信息69/98Python教案 教學(xué)設(shè)計(jì)getatime():訪問(wèn)時(shí)間getctime():狀態(tài)改變時(shí)間(例如權(quán)限等)getmtime():修改時(shí)間os.path.getsize(name):name0L,二、上機(jī)練習(xí)三、本課小結(jié)什么是模塊模塊和文件掌握導(dǎo)入模塊:模塊搜索路徑、import語(yǔ)句導(dǎo)入模塊、from語(yǔ)句導(dǎo)入模塊os模塊及方法:系統(tǒng)相關(guān)、目錄相關(guān)、路徑相關(guān)、文件相關(guān)、查詢(xún)相關(guān)課后反思70/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)主要教法
RandomMD5Time掌握Sys模塊掌握Random模塊掌握MD5加密模塊
常用模塊二講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授randomrandom.randintrandom.randint()的函數(shù)原型為:random.randint(a,b),abn:anbprintrandom.randint(12,20)n:12<=n<=20printrandom.randint(20,20)#結(jié)果永遠(yuǎn)是20#printrandom.randint(20,10) #該語(yǔ)句是錯(cuò)誤的。下限必須小于上限。Random.randrange([start],stop[,step])從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù)。如:random.randrange(10,100,2),結(jié)果相當(dāng)于從[10,12,14,16,...96,98]序列中獲取一個(gè)隨機(jī)數(shù)71/98Python教案 教學(xué)設(shè)計(jì)72/98Python教案 教學(xué)設(shè)計(jì)Md5Time73/98Python教案 教學(xué)設(shè)計(jì)Sys74/98Python教案 教學(xué)設(shè)計(jì)sys.argv實(shí)例importsysdefread):#從文件中讀出文件內(nèi)容'''''Printathestandardoutput.'''f=file()whileTrue:line=f.readline()iflen(line)==0:breakprintline,#noticecomma分別輸出每行內(nèi)容f.close()#Scriptstartsfromhereiflen(sys.argv)<2:print'Noactionspecified.'sys.exit()ifsys.argv[1].startswith('--'):option=sys.argv[1][2:]#fetchsys.argv[1]butwithoutthefirsttwocharactersifoption=='version':#--print'Version1.2'elifoption=='help':#--help時(shí),顯示相關(guān)幫助內(nèi)容print'''''/Thisprogramprintsfilestothestandardoutput.Anynumberoffilescanbespecified.Optionsinclude:--version:Printstheversionnumber--help :Displaythishelp'''else:print'Unknownoption.'sys.exit()else:forinsys.argv[1:]:#readfile,讀出其內(nèi)容read)二、上機(jī)練習(xí)75/98RandomMD5TimeRandomMD5TimeSys的上機(jī)編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)Random模塊MD5加密模塊Time模塊Sys模塊課后反思76/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教
了解什么是錯(cuò)誤了解什么是異常
錯(cuò)誤與異常和正則表達(dá)式學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)難點(diǎn)主要教法
掌握python中的常見(jiàn)異常掌握檢測(cè)和處理異常掌握處理異常的特殊方法:斷言、拋出異常、掌握re模塊掌握python中的常見(jiàn)異常掌握檢測(cè)和處理異常掌握處理異常的特殊方法:斷言、拋出異常講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授了解什么是錯(cuò)誤錯(cuò)誤分為:語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤異常:當(dāng)python檢測(cè)到錯(cuò)誤(語(yǔ)法錯(cuò)誤或者邏輯錯(cuò)誤等)時(shí),導(dǎo)致解釋器無(wú)法繼續(xù)執(zhí)行下去,這時(shí)候就出現(xiàn)了異常.異常拋出:為程序開(kāi)發(fā)人員提供了一種在運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤,進(jìn)行恢復(fù)處理,繼續(xù)執(zhí)行的能力。pythonNameError 使用一個(gè)還未賦予對(duì)象的變量SyntaxError 語(yǔ)法出錯(cuò)77/98Python教案 教學(xué)設(shè)計(jì)IOError 輸入/輸出操作失敗,基本是無(wú)法打開(kāi)文件ImportError 無(wú)法導(dǎo)入模塊或者包,基本是路徑問(wèn)題IndentationError--語(yǔ)法錯(cuò)誤,代碼沒(méi)有正確的對(duì)齊(縮進(jìn)錯(cuò)誤)78/98Python教案 教學(xué)設(shè)計(jì)IndexError 下標(biāo)索引超出序列邊界TypeError 傳入的對(duì)象類(lèi)型與要求不符AttributeError 對(duì)象沒(méi)有這個(gè)屬性,試圖訪問(wèn)一個(gè)對(duì)象沒(méi)有的屬性或是方法掌握檢測(cè)和處理異常python_Pythontry:代碼段except異常類(lèi)型,e:如果不知道異常類(lèi)型,可以使用try:代碼段exceptExcept,e:異常處理代碼段;Excepttry:語(yǔ)句 -->捕捉這里語(yǔ)句的異常exceptException1[,reason]:-->異常判斷語(yǔ)語(yǔ)句 -->異常處理語(yǔ)句exceptException2[,reason]:-->異常判斷語(yǔ)語(yǔ)句 -->異常處理語(yǔ)句except: except語(yǔ)句else: 語(yǔ)句finally:-->無(wú)論是否發(fā)生異常都執(zhí)行語(yǔ)句79/98Python教案 教學(xué)設(shè)計(jì)5,掌握處理異常的特殊方法5.1斷言語(yǔ)法:assertexpression[,reason]assert是斷言的關(guān)鍵字。執(zhí)行該語(yǔ)句的時(shí)候,先判斷表達(dá)式expression,如果表達(dá)式為真,則什么都不做;如果表達(dá)式不為真,則拋出異常了解什么是正則表達(dá)式正則表達(dá)式(RE)是由普通字符和特殊符號(hào)組成的字符串,描述了這些字符的某種組合方式,因此能按某種模式匹配一組有相似特征的字符串.re80/98Python教案 教學(xué)設(shè)計(jì)Pythonre掌握正則表達(dá)式中的特殊字符\d 匹配任何數(shù)字\D 匹配非數(shù)字字符\w 匹配字母,數(shù)字,下劃線\W 匹配不是字母,數(shù)字,下劃線的字符\s 匹配空白字符\S 匹配不是空白的字符recompile()功能:編譯正則表達(dá)式用法:compile(pattern,flags=0)findall()功能:取得每個(gè)()中正則匹配的內(nèi)容(沒(méi)有()則整個(gè)正則匹配的部分),返回匹配列表用法:findall(pattern,string[,flags])match()None。用法:match(pattern,string)search()搜索:search會(huì)檢查字符串任意位置與給定正則表達(dá)式的搜索情況。如果搜索81/98Python教案 教學(xué)設(shè)計(jì)到成功的匹配,會(huì)返回一個(gè)匹配對(duì)象,否則返回None。用法:search(pattern,string)split()功能:正則表達(dá)式作為分隔符把字符串分割為一個(gè)列表,返回列表,最多分割max次(默認(rèn)是分割所有匹配的地方)用法:split(pattern,string,max=0)importrea=""printre.split('\.',a)sub()subn()功能:將某字符串中匹配正則表達(dá)式模式的部分進(jìn)行替換。subn()和sub()一樣,但它還返回一個(gè)表示替換次數(shù)的數(shù)字;替換后的字符串和表示替換次數(shù)的數(shù)字作為一個(gè)元組返回。用法:sub(pattern,repl,string,max=0)掌握匹配或搜索返回對(duì)象的常用的方法group()group(0)group(i)i(”括起來(lái)部分正則表達(dá)式匹配的內(nèi)容groups()返回各個(gè)()括起來(lái)的正則表達(dá)式匹配的字符串組成的元組start()返回匹配開(kāi)始的位置end()返回匹配結(jié)束的位置span()返回匹配開(kāi)始和結(jié)束的位置二、上機(jī)練習(xí)82/98學(xué)生上機(jī)完成本節(jié)python中的常見(jiàn)異常、檢測(cè)和處理異常、處理異常的特殊方法、re模塊的上機(jī)編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是錯(cuò)誤、什么是異常學(xué)生上機(jī)完成本節(jié)python中的常見(jiàn)異常、檢測(cè)和處理異常、處理異常的特殊方法、re模塊的上機(jī)編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是錯(cuò)誤、什么是異常python中的常見(jiàn)異常檢測(cè)和處理異常處理異常的特殊方法:斷言、拋出異常、re模塊課后反思83/98Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)
掌握數(shù)據(jù)庫(kù)連接方法掌握數(shù)據(jù)庫(kù)模塊方法
與數(shù)據(jù)庫(kù)交互目標(biāo)教學(xué)重點(diǎn)
學(xué)會(huì)數(shù)據(jù)庫(kù)操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢(xún)數(shù)據(jù)掌握數(shù)據(jù)庫(kù)關(guān)閉方法數(shù)據(jù)庫(kù)操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢(xún)數(shù)據(jù)教學(xué)難點(diǎn)主要教法
數(shù)據(jù)庫(kù)模塊方法
講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授數(shù)據(jù)庫(kù)的連接mysqldbyuminstallpython-develmysql-develzlib-developenssl-devel導(dǎo)入模塊建立連接常見(jiàn)參數(shù)84/98Python教案 教學(xué)設(shè)計(jì)數(shù)據(jù)庫(kù)模塊方法commit()提交rollback()回滾看一個(gè)簡(jiǎn)單的查詢(xún)示例如下:2.1cursorcursor:1.執(zhí)行命令,2.cursorexecute(self,query,args)//sqlexecutemany(self,query,args)//移動(dòng)到下一個(gè)結(jié)果集cursor//接收全部的返回結(jié)果行.fetchall(self)//sizesizecursor.arraysizefetchmany(self,size=None)//fetchone(self)數(shù)據(jù)庫(kù)操作databasetablesexecute()EMPLOYEE:85/98PAGEPAGE99/98Python教案 教學(xué)設(shè)計(jì)代碼如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打開(kāi)數(shù)據(jù)庫(kù)連接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法獲取操作游標(biāo)cursor=db.cursor()execute()cursor.execute("DROPTABLEIFEXISTSEMPLOYEE")SQLsql="""CREATETABLEEMPLOYEE(FIRST_NAME CHAR(20)NOTLAST_NAME CHAR(20),AGEINT,SEXCHAR(1),INCOMEFLOAT)"""cursor.execute(sql)#關(guān)閉數(shù)據(jù)庫(kù)連接db.close()代碼如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打開(kāi)數(shù)據(jù)庫(kù)連接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法獲取操作游標(biāo)cursor=db.cursor()#SQL插入語(yǔ)句sql="""INSERTINTOEMPLOYEE(FIRST_NAME,LAST_NAME,AGE,SEX,INCOME)VALUES('Mac','Mohan',20,'M',2000)"""try:sqlexcept:#Rollbackincasethereisanyerrordb.rollback()#關(guān)閉數(shù)據(jù)庫(kù)連接db.close()sqlcursor.executemanyawsPython教案 教學(xué)設(shè)計(jì)上例也可以寫(xiě)成通過(guò)占位符傳參的方式進(jìn)行執(zhí)行,如下:代碼如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打開(kāi)數(shù)據(jù)庫(kù)連接db=MySQLdb.connect("localhost","testuser","test123","TESTDB")#使用cursor()方法獲取操作游標(biāo)cursor=db.cursor()#SQL插入語(yǔ)句sql="INSERTINTOEMPLOYEE(FIRST_NAME,\LAST_NAME,AGE,SEX,INCOME)\VALUES('%s','%s','%d','%c','%d')"%\('Mac','Mohan',20,'M',2000)try:sqlexcept:#發(fā)生錯(cuò)誤時(shí)回滾db.rollback()db.close()代碼如下:user_id="test"password=con.execute('insertintoLoginvalues("%s","%s")'%\(user_id,password))數(shù)據(jù)庫(kù)查詢(xún)操作EMPLOYEEsalary(工資)1000代碼如下:#!/usr/bin/python#encoding:utf-8importMySQLdb#打開(kāi)數(shù)據(jù)庫(kù)連接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法獲取操作游標(biāo)cursor=db.cursor()#SQL查詢(xún)語(yǔ)句sql="SELECT*FROMEMPLOYEE\WHEREINCOME>'%d'"%(1000)try:
SQL
Python教案 教學(xué)設(shè)計(jì)results=cursor.fetchall()forrowinresults:fname=row[0]lname=row[1]age=row[2]sex=row[3]income=#打印結(jié)果print"fname=%s,lname=%s,age=%d,sex=%s,income=%d"%\(fname,lname,age,sex,income)except:print"Error:unabletofecthdata"#關(guān)閉數(shù)據(jù)庫(kù)連接db.close()以上腳本執(zhí)行結(jié)果如下:fname=Mac,lname=Mohan,age=20,sex=M,income=2000definput_value():FIRST_NAME=raw_input("FIRST_NAME_DELET:")sql="""deletefromemployeewhereFIRST_NAME='%s'"""%(FIRST_NAME)returnsql數(shù)據(jù)庫(kù)更新操作更新操作用于更新數(shù)據(jù)表的的數(shù)據(jù),以下實(shí)例將testSEX'M',AGE1:代碼如下:#encoding:utf-8#!/usr/bin/pythonimportMySQLdb#打開(kāi)數(shù)據(jù)庫(kù)連接db=MySQLdb.connect("localhost","root","361way","test")#使用cursor()方法獲取操作游標(biāo)cursor=db.cursor()#SQL更新語(yǔ)句sql="UPDATEEMPLOYEESETAGE=AGE+1WHERESEX='%c'"%('M')try:
SQL
Python教案 教學(xué)設(shè)計(jì)except:#發(fā)生錯(cuò)誤時(shí)回滾db.rollback()#關(guān)閉數(shù)據(jù)庫(kù)連接db.close()刪除記錄語(yǔ)句sql="DELETEFROMEMPLOYEEWHEREAGE>'%d'"%(20)try:SQLexcept:#發(fā)生錯(cuò)誤時(shí)回滾db.rollback()Python形的數(shù)據(jù)庫(kù)事務(wù)。commit()方法游標(biāo)的所有更新操作,rollback()方法回滾當(dāng)前游標(biāo)的所有操作。每一個(gè)方法都開(kāi)始了一個(gè)新的事務(wù)。二、上機(jī)練習(xí)python教師巡視指導(dǎo)。三、本課小結(jié)數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)模塊方法數(shù)據(jù)庫(kù)操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢(xún)數(shù)據(jù)數(shù)據(jù)庫(kù)關(guān)閉課后反思Python教案 教學(xué)設(shè)計(jì)Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)目標(biāo)
Python實(shí)例:監(jiān)測(cè)服務(wù)器硬盤(pán)、cpu、內(nèi)存使用率硬盤(pán)監(jiān)控cpucpu教學(xué)重點(diǎn)教學(xué)難點(diǎn)主要教法
進(jìn)程監(jiān)控
講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、學(xué)習(xí)任務(wù)學(xué)習(xí)任務(wù):監(jiān)測(cè)服務(wù)器硬盤(pán)、cpu、內(nèi)存使用率任務(wù)。要求與注意事項(xiàng)完成教學(xué)任務(wù)實(shí)例:具體如下cpu二、上機(jī)練習(xí)學(xué)生上機(jī)實(shí)操:提示:Psutil可以獲取系統(tǒng)運(yùn)行的進(jìn)程、CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等信息,主要應(yīng)用于系統(tǒng)監(jiān)控,分析和限制系統(tǒng)資源以及進(jìn)程的管理,它實(shí)現(xiàn)了類(lèi)似一下ps、top、lsof、pmap、who、iotop等命令功能,并且跨平臺(tái)支持32、64位操作系統(tǒng),還支持2.4到3.x版本的python版本代碼如下:#psutilmemoryinformations內(nèi)存使用率Python教案 教學(xué)設(shè)計(jì)#磁盤(pán)使用率disk=psutil.disk_partitions()foriindisk:print磁盤(pán):%s 分區(qū)格式:%s"%(i.device,i.fstype)disk_use=psutil.disk_usage(i.device)print"使用了:%sM,空閑:%sM,總共:%sM,使用率\033[1;31;42m%s%%\033[0m,"%(disk_use.used/1024/1024,disk_use.free/1024/1024,disk_use.total/1024/1024,disk_use.percent)#網(wǎng)絡(luò)使用率cpu使用率defcpu():whileTrue:)cpu_liyonglv=psutil.cpu_percent()print"cpu利用率:\033[1;31;42m%s%%\033[0m"%cpu_liyonglvifcpu_liyonglv>baojing()defbaojing():i=0whilei<10i+=1time.sleep(0.5)cpu()監(jiān)控服務(wù)器內(nèi)存使用率memory=psutil.virtual_memory()printmemory.usedprintmemory.totalab=float(memory.used)/float(memory.total)*100print"%.2f%%"%abprintpsutil.s()監(jiān)控服務(wù)器網(wǎng)卡使用率#網(wǎng)絡(luò)使用率count=_io_counters()print"發(fā)送字節(jié)數(shù):\033[1;31;42m%s\033[0mbytes,接收字節(jié)數(shù):\033[1;31;42m%s\033[0mbytes,發(fā)送包數(shù):%s,接收包數(shù)%s"%(count.bytes_sent,count.bytes_recv,count.packets_sent,count.packets_recv)users=psutil.users()print"當(dāng)前登錄用戶(hù):",users[0].name#時(shí)間curent_time=psutil.boot_time()Python教案 教學(xué)設(shè)計(jì)curent_time_1=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime(curent_time))printcurent_time_1進(jìn)程監(jiān)控#讀取進(jìn)程pid,名稱(chēng),可執(zhí)行路徑pid=psutil.pids()fork,iinenumerate(pid):try:proc=psutil.Process(i)printk,i,"%.2f%%"%(proc.memory_percent()),"%",(),proc.exe()exceptpsutil.AccessDenied:print"psutil.AccessDenied"三、任務(wù)展示與評(píng)價(jià)學(xué)生進(jìn)行展示,完成互評(píng)與老師點(diǎn)評(píng)項(xiàng)目 分值 評(píng)價(jià)標(biāo)準(zhǔn)
得分自評(píng) 組評(píng) 師評(píng)20程序設(shè)計(jì)30運(yùn)行結(jié)果 30小組配合 總體得分課后反思
編程技巧調(diào)試過(guò)程搭建合理穩(wěn)固小組成員分工及配合方面Python教案 教學(xué)設(shè)計(jì)時(shí)間:課題教學(xué)目標(biāo)教學(xué)重點(diǎn)
監(jiān)控服務(wù)模塊開(kāi)發(fā)監(jiān)控與apache服務(wù)實(shí)例開(kāi)發(fā)制作socket模塊Socket類(lèi)型Socket函數(shù)socket編程思路Socket編程之服務(wù)端代碼Socket編程之客戶(hù)端代碼監(jiān)控apache服務(wù)實(shí)例開(kāi)發(fā)制作socket模塊監(jiān)控apache服務(wù)實(shí)例開(kāi)發(fā)制作監(jiān)控apache服務(wù)實(shí)例開(kāi)發(fā)制作講授演示法+上機(jī)操作教 學(xué) 過(guò) 程一、新課講授SOCKET:socket。SocketBSDUNIX進(jìn)程通信機(jī)制,取后一種意思。通常也稱(chēng)作"套接字IP擬機(jī)或不同計(jì)算機(jī)之間的通信1. socket模塊Python提供了兩個(gè)基本的socket模塊。第一個(gè)是Socket,它提供了標(biāo)準(zhǔn)的BSDSocketsAPI。第二個(gè)是SocketServer,它提供了服務(wù)器中心類(lèi),可以簡(jiǎn)化網(wǎng)絡(luò)服務(wù)器的開(kāi)發(fā)。Socket類(lèi)型套接字格式:socket(family,type[,protocal])使用給定的地址族、套接字類(lèi)型、協(xié)議編號(hào)(默認(rèn)為0)來(lái)創(chuàng)建套接字。socket類(lèi)型socket.AF_UNIXsocket.AF_INETsocket.AF_INET6socket.SOCK_STREAMsocket.SOCK_DGRAMsocket.SOCK_RAW
描述只能夠用于單一的Unix系統(tǒng)進(jìn)程間通信服務(wù)器之間網(wǎng)絡(luò)通信IPv6流式socket,forTCP數(shù)據(jù)報(bào)式socket,forUDP原始套接字,普通的套接字無(wú)法處理ICMP、IGMP等網(wǎng)絡(luò)報(bào)文,而SOCK_RAWsocket.SOCK_SEQPACKET創(chuàng)建TCPSocket:創(chuàng)建UDPSocket:Socket函數(shù)注意點(diǎn):
Python教案 教學(xué)設(shè)計(jì)IPv4IP_HDRINCLIP頭??煽康倪B續(xù)數(shù)據(jù)包服務(wù)s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)TCP發(fā)送數(shù)據(jù)時(shí),已建立好TCPUDP是發(fā)給誰(shuí)。服務(wù)端與客戶(hù)端不能直接發(fā)送列表,元組,字典。需要字符串化repr(data)。socket函數(shù)服務(wù)端socket函數(shù)s.bind(address)s.listen(backlog)s.accept()客戶(hù)端socket函數(shù)s.connect(address)s.connect_ex(adddress)公共socket函數(shù)s.recv(bufsize[,flag])s.send(string[,flag])s.sendall(string[,flag])s.recvfrom(bufsize[.flag])s.sendto(string[,flag],address)s.close()s.getpeername()s.getsockname()s.setsockopt(level,optname,value)
描述,在AF_INET下以元組(host,port).TCPbacklog可以?huà)炱鸬淖畲筮B接數(shù)量。該值至少為1,大部分應(yīng)用程序設(shè)為5就可以了。接受TCP(conn,addres,其中connaddress是連接客戶(hù)端的地址。連接到address 處的套接字。一般address 的格式為元組(hostname,por,如果連接出錯(cuò),返回socket.error錯(cuò)誤。connect(address)0errno值。接受TCP指定要flag發(fā)送TCPstringstring的字節(jié)大小。完整發(fā)送TCPstringNone接受UDPrecv((data,addres。其中data是發(fā)送數(shù)據(jù)的套接字地址。發(fā)送UDP數(shù)據(jù)。將數(shù)據(jù)發(fā)送到套接字,address是形式為(ipaddr,port)的元組,指定遠(yuǎn)程地址。返回值是發(fā)送的字節(jié)數(shù)。關(guān)閉套接字。返回連接套接字的遠(yuǎn)程地址。返回值通常是元組ipaddr,por(ipaddr,port)設(shè)置給定套接字選項(xiàng)的值。s.getsockopt(level,optname[.buflen]) 返回套接字選項(xiàng)的值。s.settimeout(timeout)
因?yàn)樗鼈兛赡苡糜谶B接的操作(如connect())s.gettimeout()s.fileno()s.setblocking(flag)s.makefile()
Python教案 教學(xué)設(shè)計(jì)返回當(dāng)前超時(shí)期的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程資料員承包合同
- 仿古建設(shè)工程施工合同書(shū)
- 2024屆高考語(yǔ)文寫(xiě)作指導(dǎo)家鄉(xiāng)風(fēng)俗
- 2025年四川貨運(yùn)從業(yè)資格證模擬版本
- 中外合資經(jīng)營(yíng)企業(yè)合同常用版樣書(shū)8篇
- 2025年安徽貨運(yùn)從業(yè)資格證題
- 2025年寧德道路運(yùn)輸從業(yè)資格證考試
- 數(shù)據(jù)模型構(gòu)建表-模型構(gòu)成
- 醫(yī)院對(duì)口支援協(xié)議書(shū)
- 2025年南寧從業(yè)資格貨運(yùn)資格考試題庫(kù)答案大全
- 2025年山東泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 初中物理競(jìng)賽及自主招生講義:第7講 密度、壓強(qiáng)與浮力(共5節(jié))含解析
- 高中主題班會(huì) 梁文鋒和他的DeepSeek-由DeepSeek爆火開(kāi)啟高中第一課-高中主題班會(huì)課件
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 一年級(jí)下冊(cè)書(shū)法教案 (一)
- 《浙江省應(yīng)急管理行政處罰裁量基準(zhǔn)適用細(xì)則》知識(shí)培訓(xùn)
- 2024年全國(guó)職業(yè)院校技能大賽高職組(康復(fù)治療技術(shù)賽項(xiàng))考試題庫(kù)(含答案)
- 2025年山東健康集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《中外廣播電視史》課件
- 微信公眾號(hào)運(yùn)營(yíng)
- DLT 593-2016 高壓開(kāi)關(guān)設(shè)備和控制設(shè)備
評(píng)論
0/150
提交評(píng)論