Python教案-教學(xué)設(shè)計(jì)Word版_第1頁
Python教案-教學(xué)設(shè)計(jì)Word版_第2頁
Python教案-教學(xué)設(shè)計(jì)Word版_第3頁
Python教案-教學(xué)設(shè)計(jì)Word版_第4頁
Python教案-教學(xué)設(shè)計(jì)Word版_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

整理為word格式整理為word格式整理為word格式時(shí)間:課題程序設(shè)計(jì)基礎(chǔ)--緒論教學(xué)目標(biāo)1.了解程序設(shè)計(jì)語言的發(fā)展歷史2.理解Python語言的特點(diǎn)及其重要性3.掌握Python語言Hello程序的編寫方法4.掌握Python語言開發(fā)的運(yùn)行環(huán)境的配置教學(xué)重點(diǎn)Python語言的特點(diǎn)及其重要性Python語言開發(fā)的運(yùn)行環(huán)境的配置教學(xué)難點(diǎn)Python語言開發(fā)的運(yùn)行環(huán)境的配置主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課導(dǎo)入計(jì)算機(jī)的定義:能夠根據(jù)指令操作數(shù)據(jù)的設(shè)備計(jì)算機(jī)的兩個(gè)特性功能性可編程性計(jì)算機(jī)的可編程性需要通過程序設(shè)計(jì)來體現(xiàn)程序設(shè)計(jì)語言:計(jì)算機(jī)能夠理解和識(shí)別操作的一種交互體系程序設(shè)計(jì)語言的種類機(jī)器語言匯編語言高級(jí)語言常用的程序設(shè)計(jì)語言高級(jí)語言的執(zhí)行方法靜態(tài)語言:編譯執(zhí)行腳本語言:解釋執(zhí)行整理為word格式整理為word格式整理為word格式編譯和解釋的區(qū)別編譯:一次性的翻譯,需對(duì)目標(biāo)代碼優(yōu)化解釋:每次運(yùn)行都需要編譯:源代碼(高級(jí)語言)轉(zhuǎn)換成目標(biāo)代碼(機(jī)器語言)解釋:源代碼逐條轉(zhuǎn)化成目標(biāo)代碼同時(shí)逐條運(yùn)行目標(biāo)代碼的過程編譯的好處目標(biāo)代碼執(zhí)行速度更快目標(biāo)代碼在相同操作系統(tǒng)上使用靈活解釋的好處便于維護(hù)源代碼良好的可移植性Python語言:將解釋器和編譯器結(jié)合的腳本語言計(jì)算機(jī)已成為普通工具學(xué)會(huì)編程:滿足感和安全感C/C++等語言:復(fù)雜Python語言:充滿快樂和創(chuàng)造性的全新旅程Python語言概述Python語言的歷史誕生于1989年,已有25年,達(dá)到成熟期2000年,Python2.0,2,.7.62008年,Python3.0,3.4.xPython語言的特點(diǎn)強(qiáng)制縮進(jìn)保證可讀性不需要主函數(shù)可以同時(shí)被解釋和編譯執(zhí)行語言簡潔整理為word格式整理為word格式整理為word格式編程模式靈活(面向過程和面向?qū)ο螅㏄ython語言的開發(fā)環(huán)境配置安裝Python運(yùn)行環(huán)境到Python主頁下載并安裝Python基本開發(fā)和運(yùn)行環(huán)境,網(wǎng)址:/download/根據(jù)操作系統(tǒng)選擇不同版本下載相應(yīng)的Python2.7.6版本程序,跟隨提示安裝使用Python運(yùn)行環(huán)境方法一:啟動(dòng)Windows命令行工具,輸入python,在>>>后輸入Python語句,如圖所示輸入exit()或quit()退出方法二:調(diào)用已安裝的IDLE來啟動(dòng)Python運(yùn)行環(huán)境,方法三:按照語法格式編寫代碼,保存為文件,例如源文件hello.py。打開Windows命令行,使用命令pythonhello.py來運(yùn)行文件使用Python運(yùn)行環(huán)境方法四:打開IDLE,Ctrl+N打開一個(gè)新窗口,輸入語句并保存,使用快鍵建F5即可運(yùn)行該程序方法五:將Python集成到Eclipse等面向較大規(guī)模項(xiàng)目開發(fā)的集成開發(fā)環(huán)境中其他操作系統(tǒng)上配置Python環(huán)境與上述在Windows上的配置方法類似Hello程序你的第一個(gè)程序:在屏幕上打印出“HelloWorld”print“HelloWorld”表示將引號(hào)中的信息輸出到屏幕上顯示效果如下:二、上機(jī)練習(xí)首先進(jìn)行Python的安裝與開發(fā)環(huán)境配置,接著完成第一個(gè)程序“HelloWorld”三、本課小結(jié)計(jì)算機(jī)的基本概念程序設(shè)計(jì)語言分類編譯和解釋Python語言概述Python的Hello程序編寫及開發(fā)環(huán)境配置課后反思整理為word格式整理為word格式整理為word格式整理為word格式整理為word格式整理為word格式時(shí)間:課題Python程序語言入門教學(xué)目標(biāo)讓學(xué)生了解什么是編程及對(duì)編程提起濃厚的學(xué)習(xí)興趣;·PythonShell、GUI和Prompt(提示符)的理解;·學(xué)會(huì)與Python交互的方法,print指令;·新建程序文本文檔、運(yùn)行程序的方法、保存時(shí)需要注意什么;·學(xué)會(huì)怎樣去查詢程序的錯(cuò)誤;教學(xué)重點(diǎn)·讓學(xué)生對(duì)編程提起濃厚的興趣;·print指令的運(yùn)用;·識(shí)別和修正程序的錯(cuò)誤。教學(xué)難點(diǎn)·識(shí)別和修正程序的錯(cuò)誤;主要教法講授演示法+上機(jī)操作教學(xué)過程復(fù)習(xí)鞏固1、什么是編程?2、Python-我們和計(jì)算機(jī)溝通的語言所想要表達(dá)編程軟件翻計(jì)算機(jī)接收的意思譯成二進(jìn)制并執(zhí)行常用、最流行的幾種程序語言:C、C++、C#、Java、VB、pythonPython可以用來做什么·開發(fā)游戲&軟件(游戲后臺(tái)大多數(shù)用python編寫);·制作更高級(jí)的Flash(webflashgame);·創(chuàng)建數(shù)據(jù)庫;·黑客hacker(遠(yuǎn)程攻擊計(jì)算機(jī)、破解硬件or軟件);·發(fā)明變形金剛(2006年日本FANUC推出的人工智能機(jī)器人);·學(xué)習(xí)其他語言的基礎(chǔ)(所有程序語言都有共同性,學(xué)好python能夠讓你快人一步的理解其他程序語言);·python幾乎無所不能。========當(dāng)然不是每一個(gè)學(xué)習(xí)python的人都能成功================但是學(xué)習(xí)python你將獲利以下幾點(diǎn)========√讓你的思維更加敏捷!√讓你變的知識(shí)淵博!√讓你學(xué)習(xí)更多的英文!============也有可能帶來一些“負(fù)面影響”===========×你的皮膚會(huì)變得粗糙>_<×你可能會(huì)變成一枚宅男╯□╰×花500元買一副眼鏡⊙﹏⊙上機(jī)操作從IDLE啟動(dòng)python整理為word格式整理為word格式整理為word格式1、通過開始菜單;好比三種第一種:2B青年三種方法2、通過快捷方式;第二種:普通青年3、通過快捷鍵;網(wǎng)絡(luò)青年第三種:文藝青年·窗口標(biāo)題欄的文字“PythonShell”-中文意思是“python的外殼”,是作為用戶輸入文本與程序交互途徑的一種?!ふ麄€(gè)窗口被叫做“GUI”-中文意思是“圖形用戶界面”,GUI的特性是包含:窗口、菜單、按鈕、滾動(dòng)條等。沒有這些特性的程序叫做text-mode(文本模式程序)、commandline(命令行程序)*提問:平時(shí)在使用電腦時(shí)有沒有遇見過帶有GUI的程序和text-mode、commandline?(答案:windows窗口DOS)·>>>-叫做提示符(Prompt),指程序正在等待你鍵入信息時(shí)顯示的符號(hào)。來點(diǎn)指令吧!>>>print“Heyman!”回車(每輸入完一行指令都要輸入回車以跳轉(zhuǎn)到下一行)Print-打印(命令),指在屏幕上顯示文本,而不是常說的用打印機(jī)打印在紙上。!!注意>>顏色<<注意!!問:IDEL里為什么會(huì)有這些奇妙的顏色呢?答:IDLE為了幫助我們更好的理解和閱讀這些內(nèi)容,會(huì)用不同的顏色來區(qū)分代碼(code)不同的部分,print的顏色就是橙色。!!注意>>錯(cuò)誤<<注意!!問:SyntaxError:invalidsyntax是個(gè)什么東西?答:直譯“語法錯(cuò)誤:無效的語法”,表示python不懂你輸入的內(nèi)容,因?yàn)閜rint被錯(cuò)誤的拼成了point。與python交互我們剛剛執(zhí)行的第一條指令:heyman,就是在和python交互,這種輸入代碼與計(jì)算機(jī)交流的過程就叫做交互。多試一條指令!>>>print5+38>>>計(jì)算機(jī)非常擅長算術(shù)運(yùn)算,計(jì)算機(jī)被創(chuàng)造出來的初期就是被用來數(shù)據(jù)計(jì)算。再試一條指令!>>>print5*315>>>======Mr.LeeTIPS======幾乎所有計(jì)算機(jī)程序和語言中都使用*符號(hào)作為乘號(hào)。這個(gè)符號(hào)稱作“星號(hào)”或“星”。======口算&計(jì)算器&python三者進(jìn)行對(duì)比吧======口算:Print5*3計(jì)算器:Print98765431-9876543Python:Print4548754875157512154515421*544451484484121512157======口算&計(jì)算器&python三者進(jìn)行對(duì)比吧======利用python你除了可以超大數(shù)的數(shù)學(xué)計(jì)算之外,你還可以做些令人意想不到的事情,例如:整理為word格式整理為word格式整理為word格式>>>print“Dog”+“brother”Dogbrother>>或者>>>print“whereisplane”*20whereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplane>>>計(jì)算機(jī)除了非常擅長運(yùn)算外,另一件事情就是反復(fù)的做事情,重要的是它不會(huì)感到枯燥,就像上面我讓計(jì)算機(jī)喊了20句whereisplane,如果你高興可以讓它喊到直到MH370出現(xiàn),前提是馬航要給力還有就是不要停電……編程任務(wù)到目前為止,我們只是看到單個(gè)python指令的演示,其實(shí)程序就是多個(gè)指令的集合。創(chuàng)建程序的方法:a.通過PythonShell菜單欄→File→NewWindows創(chuàng)建;b.快捷鍵:Ctrl+N。*新程序窗口標(biāo)題欄顯示“Untitled”(未命名)。如何給程序取名字?2、程序1我們的第一個(gè)程序-“我愛吃香蕉”print“我愛吃香蕉!”print“香蕉”*20print“mua”*40print“我吃撐了!”保存/另存(命名)你的程序文檔File→Save/SaveAs輸入完指令后通過Save快:Ctrl+N保存or另存為SaveAs快:Ctrl+Shift+S?。∽⒁?gt;>擴(kuò)展名<<注意??!輸入完程序名稱后一定不要忘了加上.py,否則在python中將看不到程序中命令的顏色和windows不知道該用什么程序來打開這個(gè)文件。======Mr.LeeTIPS======如果你想要你的程序支持中文,需要在程序的第一行加上代碼:#encodingXXX#XXX用各國文字編碼代碼來替換,各國文字編碼代碼可以查詢百度。例如,簡體中文的代碼是:GBK,那么程序的第一行應(yīng)寫上:#encodingGBK#======Mr.LeeTIPS======如果出了問題在編程過程中容易出現(xiàn)的問題歸納為兩大類:syntaxerror(語法錯(cuò)誤):指編程語言的拼寫和文法規(guī)則出現(xiàn)錯(cuò)誤,意味著你鍵入的某個(gè)內(nèi)容不是正確的Python代碼。整理為word格式整理為word格式整理為word格式例如:>>>printwhereisplane”syntaxerror:invalidsyntax(語法錯(cuò)誤:無效的語法)there'sanerrorisyourprogram(這是一個(gè)錯(cuò)誤的程序)>>>錯(cuò)誤原因:where前面漏了一個(gè)引號(hào)2、runtimeerror(運(yùn)行時(shí)錯(cuò)誤):只會(huì)在程序運(yùn)行時(shí)才會(huì)發(fā)生的錯(cuò)誤,是IDLE或python無法檢測出來的錯(cuò)誤。例如:程序2運(yùn)行時(shí)錯(cuò)誤-“我愛大鱷魚”>>>print“你好!歡迎來到我的動(dòng)物園!”print“我的動(dòng)物園有好多好多的動(dòng)物,例如:”print“鱷魚”+5>>>錯(cuò)誤原因:IDLE1.2.1========NoSubprocess=========>>>你好!歡迎來到我的動(dòng)物園!我的動(dòng)物園有好多好多的動(dòng)物,例如:Traceback(mostrecentcalllast):(錯(cuò)誤的開始)File“C:\Users\Administrator\Destop\ilovebigcayman.py”,line4,in<module>(錯(cuò)誤發(fā)生的位置/程序文件保存的路徑)Print“鱷魚”+5(出錯(cuò)的代碼行)TypeError:cannotconcatenate‘str’and‘int’objects(python認(rèn)為可能存在的問題,并不一定是在這里,但是會(huì)在這附近)=====================思考=====================為嘛print“鱷魚”*5可以,print“鱷魚”+5卻不行?=====================解惑=====================聽我說,這有點(diǎn)像將蘋果和鱷魚放在一起,在python中不能將兩個(gè)完全不同的東西放在一起,比如說數(shù)字(int)和文本(str)?!镑{魚”+5像是在說5個(gè)蘋果和3只鱷魚相加等于多少?結(jié)果是8,但是8個(gè)什么?完全沒有意義。不過幾乎所有東西都可以乘以一個(gè)數(shù)來翻倍,如果你有1只鱷魚,再乘以5,那么你就會(huì)有5只鱷魚?。寺〈髞y斗!)。第二個(gè)程序任務(wù)第一個(gè)程序“我愛吃香蕉!”沒多大實(shí)際意義,僅僅只是在屏幕上打印了一些內(nèi)容,下面我們來是一個(gè)更加有意思的程序,記得給它取上一個(gè)名字,“NumGuess”是個(gè)不錯(cuò)的名字。File→NewWindows→Save→“NumGuess.py”輸入以下代碼:======================================================#encoding=GBK#importrandomsecret=random.randint(1,100)整理為word格式整理為word格式整理為word格式guess=0tries=0print"你好,同學(xué)……我和你們班主任之間有一個(gè)秘密???"print"這個(gè)秘密就在1-99之間的一個(gè)數(shù)字。我會(huì)給你6次機(jī)會(huì)來猜這個(gè)數(shù)字,猜對(duì)你就可以獲贈(zèng)加多寶一罐!"whileguess!=secretandtries<6:guess=input("來猜個(gè)數(shù)字吧?。?)ifguess<secret:print"太低了喔!~"elifguess>secret:print"太高了喔!~"tries=tries+1ifguess==secret:print"哦也!你猜中這個(gè)數(shù)字了??!那么加多寶的話,請(qǐng)出門左拐找你們蔣老師!"else:print"我不會(huì)給你更多機(jī)會(huì)了,同學(xué)!你現(xiàn)在得請(qǐng)我喝一瓶王老吉!"print"這個(gè)秘密數(shù)字就是————",secret======================================================程序解析:while、if、else、elif和input指令我們?cè)谝院髸?huì)詳細(xì)的學(xué)到。程序概念點(diǎn):由程序隨機(jī)選取秘密數(shù)。用戶輸入他猜的數(shù)。程序根據(jù)秘密數(shù)檢查用戶猜的結(jié)果:太大還是太?。坑脩舨粩鄧L試,直到猜出這個(gè)數(shù),或者用完所有機(jī)會(huì)。猜到的數(shù)與秘密數(shù)一致時(shí),玩家獲勝。>>>教學(xué)過程結(jié)束。整理為word格式整理為word格式整理為word格式課堂小結(jié):學(xué)會(huì)了如何啟動(dòng)IDLE;了解了交互模式;交給Python一些指令來執(zhí)行;看到了Python知道如何完成算術(shù)運(yùn)算(包括非常大的數(shù));啟動(dòng)IDLE文本編輯器鍵入你的第一個(gè)程序:我愛吃香蕉;運(yùn)行你的第一個(gè)Python程序;了解如何查看錯(cuò)誤消息;運(yùn)行你的第二個(gè)Python程序:猜數(shù)游戲。課堂練習(xí)之用腦想一想:如何啟動(dòng)IDLE?print的作用是什么?Python中表示乘法和除法的符號(hào)是什么?GUI的特性包括哪些?如果想要你的程序支持中文,需要做什么?課堂練習(xí)之動(dòng)手做一做:1.在交互模式中,使用Python計(jì)算一周有多少分鐘。2.編寫一個(gè)簡短的小程序,打印3行:你的名字、出生日期,還有你最喜歡的顏色。(結(jié)果應(yīng)該是下面這樣)我的名字叫XX,我是XX運(yùn)動(dòng)隊(duì)的。我1988年08月20日出生。我最喜歡的顏色是粉紅色。課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題判斷循環(huán)教學(xué)目標(biāo)掌握if語句:單分支、雙分支、多分支、嵌套完成條件語句實(shí)例:登錄認(rèn)證模塊學(xué)會(huì)判斷輸入是否合法了解三元表達(dá)式掌握range()掌握循環(huán)語句掌握for語句掌握while掌握break、continue、pass完成循環(huán)語句實(shí)例:登錄認(rèn)證模塊擴(kuò)展教學(xué)重點(diǎn)掌握if語句:單分支、雙分支、多分支、嵌套了解三元表達(dá)式掌握range()掌握循環(huán)語句掌握for語句掌握while掌握break、continue、pass教學(xué)難點(diǎn)完成條件語句實(shí)例:登錄認(rèn)證模塊完成循環(huán)語句實(shí)例:登錄認(rèn)證模塊擴(kuò)展主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授掌握if語句單分支if表達(dá)式: 代碼塊1else: 代碼塊雙分支if表達(dá)式1: 代碼塊1elif表達(dá)式2: 代碼塊2多分支整理為word格式整理為word格式整理為word格式if表達(dá)式1: 代碼塊1elif表達(dá)式2: 代碼塊2…else: 代碼塊_其他嵌套了解三元表達(dá)式Expression1ifboolean_expressionelseExpression2 如果滿足條件A大于B,則max值為A,反之max為B如:max=AifA>BelseB例如:掌握range()range():產(chǎn)生整數(shù)序列例:range(n):產(chǎn)生從0開始,到n的數(shù)字序列,不包括n。range(m,n):產(chǎn)生從m開始,到n的數(shù)字序列,不包括n。range(m,n,k):產(chǎn)生從m開始,到n,增量為k的數(shù)字序列,不包括n。掌握循環(huán)語句掌握for語句語法格式:forexpression1initerable: for_suiteelse:整理為word格式整理為word格式整理為word格式 else_suite例如:結(jié)果:整理為word格式整理為word格式整理為word格式掌握while掌握break、continue、pass語法結(jié)構(gòu):whileboolean_expression: while_suiteelse: else_suite解釋:如果boolean_expression的結(jié)果為True,循環(huán)就會(huì)執(zhí)行;boolean_expression的結(jié)果為False時(shí)終止循環(huán),此時(shí)如果有else分支,則會(huì)執(zhí)行。以上結(jié)構(gòu)中,else分支為可選部分。else代碼塊:循環(huán)不滿足循環(huán)條件終止,才會(huì)執(zhí)行,如果循環(huán)終止是由break跳出,則else分支不會(huì)執(zhí)行。例如:整理為word格式整理為word格式整理為word格式break:跳出所處的最近層循環(huán)continue:跳到所處的最近層循環(huán)的開始處pass:占位語句例如:執(zhí)行結(jié)果:整理為word格式整理為word格式整理為word格式二、上機(jī)練習(xí)條件語句實(shí)例:登錄認(rèn)證模塊判斷輸入是否合法非法用戶提示警告信息合法用戶提示登錄成功username=raw_input("username:")

ifusername=='':

print"用戶名不能為空"

else:

print"\033[1;33;45m登錄成功,歡迎%s\033[0m"%usernamechr()ord()循環(huán)語句實(shí)例:登錄認(rèn)證模塊擴(kuò)展直接回車無效,繼續(xù)輸入驗(yàn)證用戶身份是否合法三、課堂小結(jié)if語句:單分支、雙分支、多分支、嵌套、三元表達(dá)式、range()、循環(huán)語句、for語句、while、break、continue、pass登錄認(rèn)證模塊展示課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題python序列-字符串教學(xué)目標(biāo)了解序列類型常用操作了解索引和切片掌握類型轉(zhuǎn)化掌握強(qiáng)制類型轉(zhuǎn)化學(xué)會(huì)字符串轉(zhuǎn)換實(shí)例:格式化輸出菜單列表,將用戶的輸入數(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.swapcases.count()教學(xué)重點(diǎn)了解序列類型常用操作了解索引和切片掌握類型轉(zhuǎn)化掌握強(qiáng)制類型轉(zhuǎn)化教學(xué)難點(diǎn)學(xué)會(huì)字符串轉(zhuǎn)換實(shí)例主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授序列類型常用操作索引和切片索引:例:s[0]從左向右:索引從0開始;從右向左:索引從-1開始切片:例:s[0:2]擴(kuò)展切片:指定步長,例:s[0:9:2]整理為word格式整理為word格式整理為word格式掌握類型轉(zhuǎn)化格式:print“字符串%format1%format2…”%(變量或值1,變量或值2...)符號(hào)及其對(duì)應(yīng)輸出格式:%d或%i 十進(jìn)制整數(shù)或長整數(shù)%f 浮點(diǎn)數(shù)%s 字符串%% 用于輸出符號(hào)%舉例:強(qiáng)制類型轉(zhuǎn)化int():強(qiáng)制轉(zhuǎn)換為整型,例如:注意:只能將由數(shù)字組成的字符串轉(zhuǎn)換為整型錯(cuò)誤用法float():強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型例如整理為word格式整理為word格式整理為word格式str():強(qiáng)制轉(zhuǎn)換為字符串例如:掌握字符串常用方法 s.find(t):查找子串t,找到返回最小的索引值,找不到則返回-1s.join(iter)使用s作為連接符連接序列iter中所有元素如:list2=["h","e","l","l","o",".","c","o","m"] “”.join(list2)s.replace(old,new):替換s.split(sep):使用sep作為分割符,列表返回結(jié)果。如:str=””str.split(".")得到["www","baidu","com"]序列s.strip(t):刪掉開頭和結(jié)尾的字符t如:刪除空白符s1.strip()整理為word格式整理為word格式整理為word格式s.index(t):子串t首次出現(xiàn)的位置,找不到報(bào)錯(cuò)s.startswith/s.endswith(t)以子串t開頭/結(jié)尾:結(jié)果是true或falses.isalnum()/s.isalpha()/s.isdigit()/isupper()/islower():判斷所有字符是否為數(shù)字或字母/是否為字母/是否為數(shù)字結(jié)果是bools.upper()/ s.lower()/s.swapcase:所有字母轉(zhuǎn)化為大寫字母/小寫字母,大小寫互換s.count(t)統(tǒng)計(jì)t出現(xiàn)的次數(shù)二、上機(jī)練習(xí)字符串轉(zhuǎn)換實(shí)例:格式化輸出菜單列表;將用戶的輸入數(shù)值轉(zhuǎn)化整型并驗(yàn)證整理為word格式整理為word格式整理為word格式三、本課小結(jié)序列類型常用操作、索引和切片、類型轉(zhuǎn)化、強(qiáng)制類型轉(zhuǎn)化、字符串常用方法學(xué)生展示:字符串轉(zhuǎn)換實(shí)例課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題python列表和元祖教學(xué)目標(biāo)掌握列表基礎(chǔ)知識(shí)掌握列表相關(guān)方法掌握序列類型操作掌握生成器掌握元組類型掌握元組相關(guān)方法教學(xué)重點(diǎn)掌握列表相關(guān)方法掌握序列類型操作掌握生成器掌握元組類型教學(xué)難點(diǎn)掌握列表相關(guān)方法掌握元組相關(guān)方法主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授掌握列表基礎(chǔ)知識(shí)列表的特點(diǎn):支持異構(gòu):一個(gè)列表中含不同類型的對(duì)象支持嵌套:即列表中的元素可以是列表可變:支持通過索引,切片,進(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:(后面講)整理為word格式整理為word格式整理為word格式>>>tuple1=(1,2,1)>>>list1=list(tuple1)>>>list1[1,2,1]例3:掌握列表相關(guān)方法: append():向列表中追加元素例如:extend():追加可迭代對(duì)象中所有元素 例1:list2=[1,2,3] list3=[]list3.extend(list2)例2整理為word格式整理為word格式整理為word格式insert():在指定索引位置插入列表也支持索引,例如:插入例子:整理為word格式整理為word格式整理為word格式pop():按照索引彈出元素,返回值為該元素。默認(rèn)彈出最后一個(gè)元素。例如:整理為word格式整理為word格式整理為word格式remove():按照元素值彈出第一個(gè)匹配項(xiàng)例如:count():統(tǒng)計(jì)指定值出現(xiàn)的次數(shù)index():某個(gè)值第一次出現(xiàn)的位置例如:reverse():反向存放例如:整理為word格式整理為word格式整理為word格式查詢遍歷:forIinlistfori,kenument(list)sort():排序掌握序列類型操作:序列類型包括:字符串、列表、元組+連接*重復(fù)例如:max():求最大值、min():求最小值例如:整理為word格式整理為word格式整理為word格式掌握列表生成式列表生成式,是Python內(nèi)置的一種極其強(qiáng)大的生成list的表達(dá)式。用于:基于已有列表生成新列表語法結(jié)構(gòu):列表生成式的書寫格式:[x*xforxinrange(1,11)]第一:把要生成的元素x*x放到前面第二:后面跟上for循環(huán)這樣就可以把list創(chuàng)建出來。for循環(huán)后面還可以加上if判斷舉例:1到10之間的偶數(shù)平方再除以2作為新列表元素1到10之間的偶數(shù),作為新列表元素 特點(diǎn):一次性生成新列表,如果列表數(shù)據(jù)過大,會(huì)消耗大量資源。掌握元組類型定義元組:方法一:()例:tuple1=(1,3,4)方法二:使用內(nèi)置函數(shù)tuple():將可迭代對(duì)象中所有元素作為元組元素整理為word格式整理為word格式整理為word格式例:>>>list1=[1,2,3]>>>t1=tuple(list1)>>>t1(1,2,3)元組的特點(diǎn)支持異構(gòu);支持嵌套;不可變:不支持通過索引、切片,進(jìn)行修改元組的遍歷例如:掌握元組相關(guān)方法 index():返回指定元素第一次出現(xiàn)的索引位置整理為word格式整理為word格式整理為word格式 count():指定元素出現(xiàn)的次數(shù)例如:二、上機(jī)練習(xí)練習(xí):三、本課小結(jié)列表基礎(chǔ)知識(shí)、列表相關(guān)方法、序列類型操作、生成器、元組類型、元組相關(guān)方法學(xué)生完成實(shí)例操作課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題運(yùn)維平臺(tái)計(jì)算機(jī)管理實(shí)例教學(xué)目標(biāo)登錄模塊實(shí)現(xiàn)添加計(jì)算機(jī)刪除計(jì)算機(jī)查詢可管理計(jì)算機(jī)教學(xué)重點(diǎn)登錄模塊實(shí)現(xiàn)教學(xué)難點(diǎn)查詢可管理計(jì)算機(jī)主要教法講授演示法+上機(jī)操作教學(xué)過程一、學(xué)習(xí)任務(wù)運(yùn)維平臺(tái)計(jì)算機(jī)管理實(shí)例任務(wù)要求與注意事項(xiàng)二、上機(jī)練習(xí)學(xué)生上機(jī)實(shí)操:提示:整理為word格式整理為word格式整理為word格式三、任務(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)程序設(shè)計(jì)20編程技巧30調(diào)試過程運(yùn)行結(jié)果30搭建合理穩(wěn)固小組配合20小組成員分工及配合方面總體得分課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題python字典和集合教學(xué)目標(biāo)掌握字典類型掌握字典相關(guān)方法掌握字典的遍歷掌握集合類型掌握集合相關(guān)方法教學(xué)重點(diǎn)掌握字典相關(guān)方法掌握字典的遍歷掌握集合類型教學(xué)難點(diǎn)掌握字典的遍歷掌握集合相關(guān)方法主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授掌握字典類型字典的特點(diǎn)無序:通過鍵實(shí)現(xiàn)元素存取,故無序可變:可以通過鍵進(jìn)行改變異構(gòu):支持多種數(shù)據(jù)類型嵌套:可以在鍵值對(duì)中的值部分出現(xiàn)字典定義字典:方法一:{key1:value1,key2:value2,...}方法二:dict()內(nèi)置函數(shù):指定鍵值例:d2=dict(name="jerry",age="45",gender="m")關(guān)鍵點(diǎn):鍵與值用冒號(hào)“:”分開;項(xiàng)與項(xiàng)用逗號(hào)“,”分開;字典中的鍵必須是唯一的,而值可以不唯一掌握字典相關(guān)方法更新或添加元素:dict1[key]=value例如:整理為word格式整理為word格式整理為word格式items():變量解包:即將字典轉(zhuǎn)化為鍵、值作為元組的列表例如:keys();鍵列表例如:values():值列表例如:整理為word格式整理為word格式整理為word格式has_key():判斷是否存在某個(gè)鍵,返回結(jié)果true或false例如:del刪除元素:調(diào)用python自身函數(shù)刪除例如:len():取得字典中鍵值對(duì)個(gè)數(shù)例如:整理為word格式整理為word格式整理為word格式 update():在原字典上合并字典,鍵相同時(shí)會(huì)被覆蓋。 例如: get():取得某個(gè)鍵對(duì)應(yīng)的值例如: pop():彈出指定鍵對(duì)應(yīng)的值 popitem():隨機(jī)彈出鍵值對(duì)整理為word格式整理為word格式整理為word格式 clear():清除所有元素例如:掌握字典的遍歷:掌握集合類型整理為word格式整理為word格式整理為word格式什么是集合無序、互異,集合的功能及特點(diǎn) 支持成員關(guān)系判斷 支持迭代 不支持索引,切片元素唯一定義集合set方法一:{元素} 方法二:內(nèi)置函數(shù)set()例:集合相關(guān)方法:len():元素個(gè)數(shù)例如: add():添加元素例如: remove():刪除元素整理為word格式整理為word格式整理為word格式例如: update():合并集合例如: pop():隨機(jī)彈出某個(gè)元素例如:集合關(guān)系操作 s|t:s和t的并集例如:整理為word格式整理為word格式整理為word格式 s&t:s和t的交集例如: s-t:求差集,存在于s集合而不存在于t集合中的例如: s^t:求對(duì)稱差集例如:整理為word格式整理為word格式整理為word格式二、上機(jī)練習(xí)學(xué)生上機(jī)完成字典類型、字典相關(guān)方法、字典的遍歷、集合類型、集合相關(guān)方法的案例練習(xí)。三、本課小結(jié)字典類型、字典相關(guān)方法、字典的遍歷、集合類型、集合相關(guān)方法課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題python文件處理教學(xué)目標(biāo)掌握如何創(chuàng)建文件對(duì)象掌握open()三種基本模式掌握open()的附加模式掌握文件對(duì)象的相關(guān)方法掌握文件對(duì)象的相關(guān)屬性教學(xué)重點(diǎn)掌握如何創(chuàng)建文件對(duì)象掌握open()三種基本模式掌握open()的附加模式教學(xué)難點(diǎn)掌握文件對(duì)象的相關(guān)方法掌握文件對(duì)象的相關(guān)屬性主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授掌握如何創(chuàng)建文件對(duì)象內(nèi)置函數(shù)open()同file():用于打開文件和創(chuàng)建文件對(duì)象,返回文件對(duì)象with打開文件:withopen('password')asf:#f=file('password')語法格式:open(文件名,模式)例如:掌握open()三種基本模式r:只讀,如果文件不存在,會(huì)發(fā)生異常整理為word格式整理為word格式整理為word格式例:w:寫入(覆蓋原有內(nèi)容),如果文件不存在,會(huì)創(chuàng)建文件例1:password文件內(nèi)容不為空,以w模式打開:結(jié)果:創(chuàng)建passwd文件整理為word格式整理為word格式整理為word格式a:附加(從文件尾部追加),如果文件不存在,會(huì)創(chuàng)建文件例如:掌握open()的附加模式+:表示同時(shí)支持讀寫aaa+可讀寫模式,寫只能寫在文件末尾處w+可讀寫,與a+的區(qū)別是要清空文件內(nèi)容r+可讀寫,與a+的區(qū)別是可以寫到文件任何位置整理為word格式整理為word格式整理為word格式掌握文件對(duì)象的相關(guān)方法readline():返回一行readlines():列表類型返回所有行內(nèi)容read():指定從文件讀取多少字節(jié),不指定字節(jié)數(shù)則讀取全部內(nèi)容,以字符串形式顯示。tell():當(dāng)前指針在文件中的位置(多少個(gè)字節(jié)的位置) seek():定義文件指針的偏移量 f.seek(偏移量,選項(xiàng)) write():將字符串寫入文件writelines():將字符序列寫入flush():刷新,將數(shù)據(jù)從緩存區(qū)寫入文件sldkjalsjaslkjdclose():關(guān)閉文件例如:整理為word格式整理為word格式整理為word格式例2:掌握文件對(duì)象的相關(guān)屬性mode:文件打開模式name:返回文件名closed:顯示文件是否已關(guān)閉掉例如:整理為word格式整理為word格式整理為word格式二、上機(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)屬性課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題函數(shù)式編程一教學(xué)目標(biāo)掌握什么是函數(shù)掌握函數(shù)的定義掌握函數(shù)的調(diào)用掌握函數(shù)形參和實(shí)參的區(qū)別了解函數(shù)的作用域:什么是作用域、作用域分類掌握函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)教學(xué)重點(diǎn)掌握函數(shù)的調(diào)用掌握函數(shù)形參和實(shí)參的區(qū)別教學(xué)難點(diǎn)了解函數(shù)的作用域:什么是作用域、作用域分類掌握函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授掌握什么是函數(shù)function功能def函數(shù)是python為了代碼重用和最小化代碼冗余而提供的基本程序結(jié)構(gòu)。函數(shù)將相關(guān)功能打包并參數(shù)化,將復(fù)雜的系統(tǒng)分解成可管理的部件。掌握函數(shù)的定義在這里說明幾點(diǎn):在Python中采用def關(guān)鍵字進(jìn)行函數(shù)的定義,不用指定返回值的類型。函數(shù)參數(shù)params可以是零個(gè)、一個(gè)或者多個(gè),同樣的,函數(shù)參數(shù)也不用指定參數(shù)類型,因?yàn)樵赑ython中變量都是弱類型的,Python會(huì)自動(dòng)根據(jù)值來維護(hù)其類型。return語句是可選的,它可以在函數(shù)體內(nèi)任何地方出現(xiàn),表示函數(shù)調(diào)用執(zhí)行到此結(jié)束;如果沒有return語句,會(huì)自動(dòng)返回NONE,如果有return語句,但是return后面沒有接表達(dá)式或者值的話也是返回NONE。下面看例子:整理為word格式整理為word格式整理為word格式例1:例2:例3:掌握函數(shù)的調(diào)用函數(shù)調(diào)用的方法:函數(shù)名(實(shí)際參數(shù))在Python中不允許前向引用,即在函數(shù)定義之前,不允許調(diào)用該函數(shù)例如下面的錯(cuò)誤:整理為word格式整理為word格式整理為word格式掌握函數(shù)形參和實(shí)參的區(qū)別形參全稱是形式參數(shù),在用def關(guān)鍵字定義函數(shù)時(shí)函數(shù)名后面括號(hào)里的變量稱作為形式參數(shù)。實(shí)參全稱為實(shí)際參數(shù),在調(diào)用函數(shù)時(shí)提供的值或者變量稱作為實(shí)際參數(shù)例如:了解函數(shù)的作用域什么是作用域變量的作用域:即變量能夠使用的范圍作用域分類本地作用域:定義在函數(shù)體內(nèi)的變量(局部變量)在Python中,會(huì)為每個(gè)層次生成一個(gè)符號(hào)表,里層能調(diào)用外層中的變量,而外層不能調(diào)用里層中的變量,并且當(dāng)外層和里層有同名變量時(shí),外層變量會(huì)被里層變量屏蔽掉,例如:整理為word格式整理為word格式整理為word格式在函數(shù)function中,while循環(huán)外面和while循環(huán)里面都有變量x,此時(shí),while循環(huán)外面的變量x會(huì)被屏蔽掉。注意在函數(shù)內(nèi)部定義的變量作用域都僅限于函數(shù)內(nèi)部,在函數(shù)外部是不能夠調(diào)用的,一般稱這種變量為局部變量。 全局作用域:定義在主程序的變量(全局變量)它是在函數(shù)外部定義的,作用域是整個(gè)文件。全局變量可以直接在函數(shù)里面應(yīng)用,但是如果要在函數(shù)內(nèi)部改變?nèi)肿兞?,必須使用global關(guān)鍵字進(jìn)行聲明掌握函數(shù)的參數(shù)整理為word格式整理為word格式整理為word格式默認(rèn)參數(shù):定義函數(shù)時(shí),“name=value”的形式設(shè)置參數(shù)默認(rèn)值在Python中默認(rèn)的是采用位置參數(shù)來傳參。這樣調(diào)用函數(shù)必須嚴(yán)格按照函數(shù)定義時(shí)的參數(shù)個(gè)數(shù)和位置來傳參,從左至右進(jìn)行匹配,否則將會(huì)出現(xiàn)預(yù)想不到的結(jié)果調(diào)用函數(shù)時(shí)默認(rèn)參數(shù)放后邊關(guān)鍵字參數(shù):調(diào)用函數(shù)時(shí),使用“name=value”的形式通過參數(shù)名指定通過指定參數(shù)名字傳遞參數(shù)的時(shí)候,參數(shù)位置對(duì)結(jié)果是沒有影響的。關(guān)鍵字參數(shù)最厲害的地方在于它能夠給函數(shù)參數(shù)提供默認(rèn)值,參數(shù)指定了默認(rèn)值后,如果傳參時(shí)不指定參數(shù)名,則會(huì)從左到右依次進(jìn)行傳參,關(guān)鍵參數(shù)要放在普通參數(shù)后面。例如:整理為word格式整理為word格式整理為word格式可變參數(shù)例1:*args,我們要定義一個(gè)函數(shù)的時(shí)候,必須要預(yù)先定義這個(gè)函數(shù)需要多少個(gè)參數(shù)(或者說可以接受多少個(gè)參數(shù))。一般情況下這是沒問題的,但是也有在定義函數(shù)的時(shí)候,不能知道參數(shù)個(gè)數(shù)的情況在Python里,帶*的參數(shù)就是用來接受可變數(shù)量參數(shù)的,這里接收的是元組數(shù)據(jù)整理為word格式整理為word格式整理為word格式例2:**kwargs,字典作為參數(shù):定義函數(shù)時(shí)使用**開頭的參數(shù),調(diào)用時(shí)使用“name=value”的形式,作為傳遞進(jìn)來字典的鍵值對(duì)二、上機(jī)練習(xí)學(xué)生上機(jī)完成函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是函數(shù)函數(shù)的定義函數(shù)的調(diào)用函數(shù)形參和實(shí)參的區(qū)別函數(shù)的作用域:什么是作用域、作用域分類函數(shù)的參數(shù):默認(rèn)參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題函數(shù)式編程二教學(xué)目標(biāo)遞歸函數(shù)掌握lambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器教學(xué)重點(diǎn)遞歸函數(shù)教學(xué)難點(diǎn)掌握lambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授遞歸函數(shù):在函數(shù)內(nèi)部,可以調(diào)用其他函數(shù)。如果一個(gè)函數(shù)在內(nèi)部調(diào)用自身本身,這個(gè)函數(shù)就是遞歸函數(shù);例1例2整理為word格式整理為word格式整理為word格式掌握lambda表達(dá)式lambda函數(shù)也叫匿名函數(shù),即,函數(shù)沒有具體的名稱,而用def創(chuàng)建的方法是有名稱的語法:lambda參數(shù):表達(dá)式lambda語句中,冒號(hào)前是參數(shù),可以有多個(gè),用逗號(hào)隔開,冒號(hào)右邊的返回值。lambda語句構(gòu)建的其實(shí)是一個(gè)函數(shù)對(duì)象舉例:f1=lambdax,y:x+y f1(2,3)和map函數(shù)共同使用:Map()第一個(gè)參數(shù)接收一個(gè)函數(shù)名,第二個(gè)參數(shù)接收一個(gè)可迭代對(duì)象例如:整理為word格式整理為word格式整理為word格式Lambda和map共同使用enumerate函數(shù)用于遍歷序列中的元素以及它們的下標(biāo)整理為word格式整理為word格式整理為word格式y(tǒng)ield函數(shù):yield的作用就是把一個(gè)函數(shù)變成一個(gè)generator,帶有yield的函數(shù)不再是一個(gè)普通函數(shù),Python解釋器會(huì)將其視為一個(gè)generator例如:裝飾器裝飾器就是為已經(jīng)存在的對(duì)象添加額外的功能。比如1:整理為word格式整理為word格式整理為word格式例如2:整理為word格式整理為word格式整理為word格式其中@語法糖:相當(dāng)于run=login(run)二、上機(jī)練習(xí)學(xué)生上機(jī)完成本節(jié)函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)遞歸函數(shù)掌握lambda表達(dá)式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題常用模塊一教學(xué)目標(biāo)了解什么是模塊了解模塊和文件掌握導(dǎo)入模塊:模塊搜索路徑、import語句導(dǎo)入模塊、from語句導(dǎo)入模塊os模塊及方法:系統(tǒng)相關(guān)、目錄相關(guān)、路徑相關(guān)、文件相關(guān)、查詢相關(guān)教學(xué)重點(diǎn)了解模塊和文件教學(xué)難點(diǎn)掌握導(dǎo)入模塊os模塊及方法:主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授了解什么是模塊模塊是一個(gè)包含定義的變量,函數(shù)和類的文件,其后綴名是.py。模塊可以被其他程序?qū)?,以使用該模塊中的變量,函數(shù)和類。了解模塊和文件if__name__=="__main__":print‘xxxx’如果作為程序文件獨(dú)立執(zhí)行,__name__變量值為__main__,則執(zhí)行if__name__=="__main__":后的語句。如果作為模塊導(dǎo)入其他文件,__name__變量值為模塊名,則不執(zhí)行if__name__=="__main__":后的語句,在導(dǎo)入進(jìn)的文件中調(diào)用時(shí)才對(duì)應(yīng)執(zhí)行。掌握導(dǎo)入模塊模塊搜索路徑:importsysprintsys.path查看以列表顯示的搜索路徑例如:整理為word格式整理為word格式整理為word格式import語句導(dǎo)入模塊importmodule導(dǎo)入模塊importmoduleasmodule_alias以別名導(dǎo)入模塊from語句導(dǎo)入模塊frommodulesimportnames導(dǎo)入模塊的指定屬性或方法掌握os模塊常用方法(實(shí)現(xiàn)跨平臺(tái)的操作系統(tǒng)應(yīng)用接口)指示正在使用的平臺(tái);如果是window則用'nt'表示,對(duì)于Linux/Unix用戶,它是'posix'例如:調(diào)用系統(tǒng)命令的方法os.system():調(diào)用操作系統(tǒng)的命令;例如整理為word格式整理為word格式整理為word格式 os.popen()調(diào)用系統(tǒng)命令,但結(jié)果是返回對(duì)象例如:目錄相關(guān)的方法:getcwd():查看當(dāng)前目錄。即python腳本工作的目錄路徑;例如:整理為word格式整理為word格式整理為word格式chdir():切換目錄;例如:os.walk():遍歷目錄樹walk(top,topdown=True,onerror=None)listdir():列出指定目錄下文件及子目錄;如:整理為word格式整理為word格式整理為word格式顯示c盤文件和目錄:整理為word格式整理為word格式整理為word格式mkdir():創(chuàng)建目錄;如:整理為word格式整理為word格式整理為word格式makedirs():創(chuàng)建多層級(jí)目錄;如:整理為word格式整理為word格式整理為word格式rmdir():刪除空目錄;例如:removedirs():刪除多層級(jí)空目錄;例如:路徑相關(guān)的方法:os.path.split():函數(shù)返回一個(gè)路徑的目錄名和文件名;例如:整理為word格式整理為word格式整理為word格式os.path.abspath(name):獲得絕對(duì)路徑;如:os.path.splitext():分離文件名與擴(kuò)展名,例如:os.path.join(path,name):連接目錄與文件名或目錄,例如:os.path.basename(path):返回文件名;例如:os.path.dirname(path):返回文件路徑,例如:整理為word格式整理為word格式整理為word格式文件相關(guān)的方法:remove():刪除文件,如:rename():重命名文件,如查詢相關(guān)方法os.path.exists()函數(shù)用來檢驗(yàn)給出的路徑是否真地存在,如:os.path.isfile()和os.path.isdir()函數(shù)分別檢驗(yàn)給出的路徑是一個(gè)文件還是目錄。例如:islink():是否為鏈接文件文件信息相關(guān)方法:stat():查看文件狀態(tài)信息整理為word格式整理為word格式整理為word格式getatime():訪問時(shí)間getctime():狀態(tài)改變時(shí)間(例如權(quán)限等)getmtime():修改時(shí)間os.path.getsize(name):獲得文件大小,如果name是目錄返回0L,二、上機(jī)練習(xí)學(xué)生上機(jī)完成本節(jié)模塊與文件的上機(jī)編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是模塊模塊和文件掌握導(dǎo)入模塊:模塊搜索路徑、import語句導(dǎo)入模塊、from語句導(dǎo)入模塊os模塊及方法:系統(tǒng)相關(guān)、目錄相關(guān)、路徑相關(guān)、文件相關(guān)、查詢相關(guān)課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題常用模塊二教學(xué)目標(biāo)掌握Random模塊掌握MD5加密模塊掌握Time模塊掌握Sys模塊教學(xué)重點(diǎn)掌握Random模塊教學(xué)難點(diǎn)掌握MD5加密模塊主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授random模塊random.randintrandom.randint()的函數(shù)原型為:random.randint(a,b),用于生成一個(gè)指定范圍內(nèi)的整數(shù)。其中參數(shù)a是下限,參數(shù)b是上限,生成的隨機(jī)數(shù)n:a<=n<=bprintrandom.randint(12,20)#生成的隨機(jī)數(shù)n:12<=n<=20printrandom.randint(20,20)#結(jié)果永遠(yuǎn)是20#printrandom.randint(20,10)#該語句是錯(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ù)整理為word格式整理為word格式整理為word格式整理為word格式整理為word格式整理為word格式Md5加密模塊Time模塊整理為word格式整理為word格式整理為word格式Sys模塊整理為word格式整理為word格式整理為word格式sys.argv實(shí)例importsys

defreadfile(filename):#從文件中讀出文件內(nèi)容

'''''Printafiletothestandardoutput.'''

f=file(filename)

whileTrue:

line=f.readline()

iflen(line)==0:

break

printline,#noticecomma分別輸出每行內(nèi)容

f.close()

#Scriptstartsfromhere

iflen(sys.argv)<2:

print'Noactionspecified.'

sys.exit()

ifsys.argv[1].startswith('--'):

option=sys.argv[1][2:]

#fetchsys.argv[1]butwithoutthefirsttwocharacters

ifoption=='version':#當(dāng)命令行參數(shù)為--version,顯示版本號(hào)

print'Version1.2'

elifoption=='help':#當(dāng)命令行參數(shù)為--help時(shí),顯示相關(guān)幫助內(nèi)容

print'''''/

Thisprogramprintsfilestothestandardoutput.

Anynumberoffilescanbespecified.

Optionsinclude:

--version:Printstheversionnumber

--help:Displaythishelp'''

else:

print'Unknownoption.'

sys.exit()

else:

forfilenameinsys.argv[1:]:#當(dāng)參數(shù)為文件名時(shí),傳入readfile,讀出其內(nèi)容

readfile(filename)二、上機(jī)練習(xí)學(xué)生上機(jī)完成本節(jié)Random模塊、MD5加密模塊、Time模塊、Sys模塊的上機(jī)編程任務(wù),教師巡視指導(dǎo)。整理為word格式整理為word格式整理為word格式三、本課小結(jié)Random模塊MD5加密模塊Time模塊Sys模塊課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題錯(cuò)誤與異常和正則表達(dá)式教學(xué)目標(biāo)了解什么是錯(cuò)誤了解什么是異常掌握python中的常見異常掌握檢測和處理異常掌握處理異常的特殊方法:斷言、拋出異常、掌握re模塊教學(xué)重點(diǎn)掌握python中的常見異常教學(xué)難點(diǎn)掌握檢測和處理異常掌握處理異常的特殊方法:斷言、拋出異常主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授了解什么是錯(cuò)誤錯(cuò)誤分為:語法錯(cuò)誤和邏輯錯(cuò)誤了解什么是異常異常:當(dāng)python檢測到錯(cuò)誤(語法錯(cuò)誤或者邏輯錯(cuò)誤等)時(shí),導(dǎo)致解釋器無法繼續(xù)執(zhí)行下去,這時(shí)候就出現(xiàn)了異常.異常拋出:為程序開發(fā)人員提供了一種在運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤,進(jìn)行恢復(fù)處理,繼續(xù)執(zhí)行的能力。掌握python中的常見異常NameError---------使用一個(gè)還未賦予對(duì)象的變量SyntaxError-------語法出錯(cuò)整理為word格式整理為word格式整理為word格式IOError-----------輸入/輸出操作失敗,基本是無法打開文件ImportError-------無法導(dǎo)入模塊或者包,基本是路徑問題IndentationError--語法錯(cuò)誤,代碼沒有正確的對(duì)齊(縮進(jìn)錯(cuò)誤)整理為word格式整理為word格式整理為word格式IndexError--------下標(biāo)索引超出序列邊界 TypeError---------傳入的對(duì)象類型與要求不符AttributeError----對(duì)象沒有這個(gè)屬性,試圖訪問一個(gè)對(duì)象沒有的屬性或是方法掌握檢測和處理異常python編程_Python異常機(jī)制try:代碼段except異常類型,e:異常處理代碼段,如果不知道異常類型,可以使用try:代碼段exceptExcept,e:異常處理代碼段;Except是通用異常類型try: 語句-->捕捉這里語句的異常exceptException1[,reason]:-->異常判斷語句 語句-->異常處理語句exceptException2[,reason]:-->異常判斷語句 語句-->異常處理語句except:-->空except語句用于捕捉其他異常 語句else: -->未發(fā)生異常時(shí)執(zhí)行語句 finally: -->無論是否發(fā)生異常都執(zhí)行 語句整理為word格式整理為word格式整理為word格式5,掌握處理異常的特殊方法 5.1斷言 語法:assertexpression[,reason]assert是斷言的關(guān)鍵字。執(zhí)行該語句的時(shí)候,先判斷表達(dá)式expression,如果表達(dá)式為真,則什么都不做;如果表達(dá)式不為真,則拋出異常了解什么是正則表達(dá)式正則表達(dá)式(RE)是由普通字符和特殊符號(hào)組成的字符串,描述了這些字符的某種組合方式,因此能按某種模式匹配一組有相似特征的字符串.了解什么是re模塊整理為word格式整理為word格式整理為word格式Python的re模塊用于實(shí)現(xiàn)正則表達(dá)式。掌握正則表達(dá)式中的特殊字符\d匹配任何數(shù)字\D匹配非數(shù)字字符\w匹配字母,數(shù)字,下劃線\W匹配不是字母,數(shù)字,下劃線的字符\s匹配空白字符\S匹配不是空白的字符掌握re模塊的常用方法compile()功能:編譯正則表達(dá)式用法:compile(pattern,flags=0)findall()功能:取得每個(gè)()中正則匹配的內(nèi)容(沒有()則整個(gè)正則匹配的部分),返回匹配列表用法:findall(pattern,string[,flags])match()匹配:從字符串的開頭對(duì)模式進(jìn)行匹配,如果成功,則返回一個(gè)對(duì)象;如果失敗,則返回None。用法:match(pattern,string)search()搜索:search會(huì)檢查字符串任意位置與給定正則表達(dá)式的搜索情況。如果搜索到成功的匹配,會(huì)返回一個(gè)匹配對(duì)象,否則返回None。整理為word格式整理為word格式整理為word格式用法:search(pattern,string)split()功能:正則表達(dá)式作為分隔符把字符串分割為一個(gè)列表,返回列表,最多分割max次(默認(rèn)是分割所有匹配的地方)用法:split(pattern,string,max=0)importre

a=""

printre.split('\.',a)sub()和subn()功能:將某字符串中匹配正則表達(dá)式模式的部分進(jìn)行替換。subn()和sub()一樣,但它還返回一個(gè)表示替換次數(shù)的數(shù)字;替換后的字符串和表示替換次數(shù)的數(shù)字作為一個(gè)元組返回。用法:sub(pattern,repl,string,max=0)掌握匹配或搜索返回對(duì)象的常用的方法group()返回整個(gè)正則表達(dá)式匹配的字符串,同group(0)group(i)正則表達(dá)式中第i個(gè)“()”括起來部分正則表達(dá)式匹配的內(nèi)容groups()返回各個(gè)()括起來的正則表達(dá)式匹配的字符串組成的元組start()返回匹配開始的位置end()返回匹配結(jié)束的位置span()返回匹配開始和結(jié)束的位置二、上機(jī)練習(xí)整理為word格式整理為word格式整理為word格式學(xué)生上機(jī)完成本節(jié)python中的常見異常、檢測和處理異常、處理異常的特殊方法、re模塊的上機(jī)編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是錯(cuò)誤、什么是異常python中的常見異常檢測和處理異常處理異常的特殊方法:斷言、拋出異常、re模塊課后反思整理為word格式整理為word格式整理為word格式時(shí)間:課題與數(shù)據(jù)庫交互教學(xué)目標(biāo)掌握數(shù)據(jù)庫連接方法掌握數(shù)據(jù)庫模塊方法學(xué)會(huì)數(shù)據(jù)庫操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)掌握數(shù)據(jù)庫關(guān)閉方法教學(xué)重點(diǎn)數(shù)據(jù)庫操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)教學(xué)難點(diǎn)數(shù)據(jù)庫模塊方法主要教法講授演示法+上機(jī)操作教學(xué)過程一、新課講授數(shù)據(jù)庫的連接mysqldb解決依賴性yuminstallpython-develmysql-develzlib-developenssl-devel導(dǎo)入模塊建立連接常見參數(shù)數(shù)據(jù)庫模塊方法整理為word格式整理為word格式整理為word格式commit()提交

rollback()回滾看一個(gè)簡單的查詢示例如下:cursor方法執(zhí)行與返回值cursor方法提供兩類操作:1.執(zhí)行命令,2.接收返回值。

cursor用來執(zhí)行命令的方法execute(self,query,args)

//執(zhí)行單條sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)

executemany(self,query,args)

//移動(dòng)到下一個(gè)結(jié)果集

cursor用來接收返回值的方法

//接收全部的返回結(jié)果行.

fetchall(self)

//接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會(huì)返回cursor.arraysize條數(shù)據(jù)

fetchmany(self,size=None)

//返回一條結(jié)果行

fetchone(self)數(shù)據(jù)庫操作創(chuàng)建databasetables

如果數(shù)據(jù)庫連接存在我們可以使用execute()方法來為數(shù)據(jù)庫創(chuàng)建表,如下所示創(chuàng)建表EMPLOYEE:代碼如下:#!/usr/bin/python

#encoding:utf-8

importMySQLdb

#打開數(shù)據(jù)庫連接

db=MySQLdb.connect("localhost","root","361way","test")

#使用cursor()方法獲取操作游標(biāo)

cursor=db.cursor()

#如果數(shù)據(jù)表已經(jīng)存在使用execute()方法刪除表。

cursor.execute("DROPTABLEIFEXISTSEMPLOYEE")

#創(chuàng)建數(shù)據(jù)表SQL語句

sql="""CREATETABLEEMPLOYEE(

FIRST_NAME

CHAR(20)NOTNULL,

LAST_NAME

CHAR(20),

AGEINT,

SEXCHAR(1),

INCOMEFLOAT)"""

cursor.execute(sql)

#關(guān)閉數(shù)據(jù)庫連接

db.close()整理為word格式整理為word格式整理為word格式數(shù)據(jù)庫插入操作代碼如下:#!/usr/bin/python

#encoding:utf-8

importMySQLdb

#打開數(shù)據(jù)庫連接

db=MySQLdb.connect("localhost","root","361way","test")

#使用cursor()方法獲取操作游標(biāo)

cursor=db.cursor()

#SQL插入語句

sql="""INSERTINTOEMPLOYEE(FIRST_NAME,

LAST_NAME,AGE,SEX,INCOME)

VALUES('Mac','Mohan',20,'M',2000)"""

try:

#執(zhí)行sql語句

cursor.execute(sql)

#提交到數(shù)據(jù)庫執(zhí)行

mit()

except:

#Rollbackincasethereisanyerror

db.rollback()

#關(guān)閉數(shù)據(jù)庫連接

db.close()

這里是一個(gè)單sql執(zhí)行的示例,cursor.executemany的用法感興趣的讀者可以參看相關(guān)的aws主機(jī)資產(chǎn)管理系統(tǒng)示例。

上例也可以寫成通過占位符傳參的方式進(jìn)行執(zhí)行,如下:代碼如下:整理為word格式整理為word格式整理為word格式#!/usr/bin/python

#encoding:utf-8

importMySQLdb

#打開數(shù)據(jù)庫連接

db=MySQLdb.connect("localhost","testuser","test123","TESTDB")

#使用cursor()方法獲取操作游標(biāo)

cursor=db.cursor()

#SQL插入語句

sql="INSERTINTOEMPLOYEE(FIRST_NAME,\

LAST_NAME,AGE,SEX,INCOME)\

VALUES('%s','%s','%d','%c','%d')"%\

('Mac','Mohan',20,'M',2000)

try:

#執(zhí)行sql語句

cursor.execute(sql)

#提交到數(shù)據(jù)庫執(zhí)行

mit()

except:

#發(fā)生錯(cuò)誤時(shí)回滾

db.rollback()

#關(guān)閉數(shù)據(jù)庫連接

db.close()

也可以以變量的方式傳遞參數(shù),如下:代碼如下:..................................

user_id="test"

password="password123"

con.execute('insertintoLoginvalues("%s","%s")'%\

(user_id,password))

..................................3.3數(shù)據(jù)庫查詢操作

以查詢EMPLOYEE表中salary(工資)字段大于1000的所有數(shù)據(jù)為例:代碼如下:#!/usr/bin/python

#encoding:utf-8

importMySQLdb

#打開數(shù)據(jù)庫連接

db=MySQLdb.connect("localhost","root","361way","test")

#使用cursor()方法獲取操作游標(biāo)

cursor=db.cursor()

#SQL查詢語句

sql="SELECT*FROMEMPLOYEE\

WHEREINCOME>'%d'"%(1000)

try:

#執(zhí)行SQL語句

cursor.execute(sql)

#獲取所有記錄列表

results=cursor.fetchall()

forrowinresults:

fname=row[0]

lname=row[1]

age=row[2]

sex=row[3]

income=row[4]

#打印結(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ù)庫連接

db.close()整理為word格式整理為word格式整理為word格式

以上腳本執(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)

returnsql3.4數(shù)據(jù)庫更新操作

更新操作用于更新數(shù)據(jù)表的的數(shù)據(jù),以下實(shí)例將test表中的SEX字段全部修改為'M',AGE字段遞增1:代碼如下:#encoding:utf-8

#!/usr/bin/python

importMySQLdb

#打開數(shù)據(jù)庫連接

db=MySQLdb.connect("localhost","root","361way","test")

#使用cursor()方法獲取操作游標(biāo)

cursor=db.cursor()

#SQL更新語句

sql="UPDATEEMPLOYEESETAGE=AGE+1

WHERESEX='%c'"%('M')

try:

#執(zhí)行SQL語句

cursor.execute(sql)

#提交到數(shù)據(jù)庫執(zhí)行

mit()

except:

#發(fā)生錯(cuò)誤時(shí)回滾

db.rollback()

#關(guān)閉數(shù)據(jù)庫連接

db.close()整理為word格式整理為word格式整理為word格式3.5刪除記錄語句

sql="DELETEFROMEMPLOYEEWHEREAGE>'%d'"%(20)

try:

#執(zhí)行SQL語句

cursor.execute(sql)

#向數(shù)據(jù)庫提交

mit()

except:

#發(fā)生錯(cuò)誤時(shí)回滾

db.rollback()

對(duì)于支持事務(wù)的數(shù)據(jù)庫,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論