版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
時間:課題程序設(shè)計基礎(chǔ)--緒論教學(xué)目標1.了解程序設(shè)計語言的發(fā)展歷史2.理解Python語言的特點及其重要性3.掌握Python語言Hello程序的編寫方法4.掌握Python語言開發(fā)的運行環(huán)境的配置教學(xué)重點Python語言的特點及其重要性Python語言開發(fā)的運行環(huán)境的配置教學(xué)難點Python語言開發(fā)的運行環(huán)境的配置主要教法講授演示法+上機操作教學(xué)過程一、新課導(dǎo)入計算機的定義:能夠根據(jù)指令操作數(shù)據(jù)的設(shè)備計算機的兩個特性功能性可編程性計算機的可編程性需要通過程序設(shè)計來體現(xiàn)程序設(shè)計語言:計算機能夠理解和識別操作的一種交互體系程序設(shè)計語言的種類機器語言匯編語言高級語言常用的程序設(shè)計語言高級語言的執(zhí)行方法靜態(tài)語言:編譯執(zhí)行腳本語言:解釋執(zhí)行編譯和解釋的區(qū)別編譯:一次性的翻譯,需對目標代碼優(yōu)化解釋:每次運行都需要編譯:源代碼(高級語言)轉(zhuǎn)換成目標代碼(機器語言)解釋:源代碼逐條轉(zhuǎn)化成目標代碼同時逐條運行目標代碼的過程編譯的好處目標代碼執(zhí)行速度更快目標代碼在相同操作系統(tǒng)上使用靈活解釋的好處便于維護源代碼良好的可移植性Python語言:將解釋器和編譯器結(jié)合的腳本語言計算機已成為普通工具學(xué)會編程:滿足感和安全感C/C++等語言:復(fù)雜Python語言:充滿快樂和創(chuàng)造性的全新旅程Python語言概述Python語言的歷史誕生于1989年,已有25年,達到成熟期2000年,Python2.0,2,.7.6Python語言的特點強制縮進保證可讀性不需要主函數(shù)可以同時被解釋和編譯執(zhí)行語言簡潔編程模式靈活(面向過程和面向?qū)ο螅㏄ython語言的開發(fā)環(huán)境配置安裝Python運行環(huán)境到Python主頁下載并安裝Python基本開發(fā)和運行環(huán)境,網(wǎng)址:根據(jù)操作系統(tǒng)選擇不同版本下載相應(yīng)的Python版本程序,跟隨提示安裝使用Python運行環(huán)境方法一:啟動Windows命令行工具,輸入python,在>>>后輸入Python語句,如圖所示輸入exit()或quit()退出方法二:調(diào)用已安裝的IDLE來啟動Python運行環(huán)境,方法三:按照語法格式編寫代碼,保存為文件,例如源文件hello.py。打開Windows命令行,使用命令pythonhello.py來運行文件使用Python運行環(huán)境方法四:打開IDLE,Ctrl+N打開一個新窗口,輸入語句并保存,使用快鍵建F5即可運行該程序方法五:將Python集成到Eclipse等面向較大規(guī)模項目開發(fā)的集成開發(fā)環(huán)境中其他操作系統(tǒng)上配置Python環(huán)境及上述在Windows上的配置方法類似Hello程序你的第一個程序:在屏幕上打印出“HelloWorld”print“HelloWorld”表示將引號中的信息輸出到屏幕上顯示效果如下:二、上機練習(xí)首先進行Python的安裝及開發(fā)環(huán)境配置,接著完成第一個程序“HelloWorld”三、本課小結(jié)計算機的基本概念程序設(shè)計語言分類編譯和解釋Python語言概述Python的Hello程序編寫及開發(fā)環(huán)境配置課后反思時間:課題Python程序語言入門教學(xué)目標讓學(xué)生了解什么是編程及對編程提起濃厚的學(xué)習(xí)興趣;·PythonShell、GUI和Prompt(提示符)的理解;·學(xué)會及Python交互的方法,print指令;·新建程序文本文檔、運行程序的方法、保存時需要注意什么;·學(xué)會怎樣去查詢程序的錯誤;教學(xué)重點·讓學(xué)生對編程提起濃厚的興趣;·print指令的運用;·識別和修正程序的錯誤。教學(xué)難點·識別和修正程序的錯誤;主要教法講授演示法+上機操作教學(xué)過程復(fù)習(xí)鞏固1、什么是編程?2、Python-我們和計算機溝通的語言所想要表達編程軟件翻計算機接收的意思譯成二進制并執(zhí)行常用、最流行的幾種程序語言:C、C++、C#、Java、VB、pythonPython可以用來做什么·開發(fā)游戲&軟件(游戲后臺大多數(shù)用python編寫);·制作更高級的Flash(webflashgame);·創(chuàng)建數(shù)據(jù)庫;·黑客hacker(遠程攻擊計算機、破解硬件or軟件);·發(fā)明變形金剛(2006年日本FANUC推出的人工智能機器人);·學(xué)習(xí)其他語言的基礎(chǔ)(所有程序語言都有共同性,學(xué)好python能夠讓你快人一步的理解其他程序語言);·python幾乎無所不能。========當(dāng)然不是每一個學(xué)習(xí)python的人都能成功================但是學(xué)習(xí)python你將獲利以下幾點========√讓你的思維更加敏捷!√讓你變的知識淵博!√讓你學(xué)習(xí)更多的英文!============也有可能帶來一些“負面影響”===========×你的皮膚會變得粗糙>_<×你可能會變成一枚宅男╯□╰×花500元買一副眼鏡⊙﹏⊙上機操作從IDLE啟動python1、通過開始菜單;好比三種第一種:2B青年三種方法2、通過快捷方式;第二種:普通青年3、通過快捷鍵;網(wǎng)絡(luò)青年第三種:文藝青年·窗口標題欄的文字“PythonShell”-中文意思是“python的外殼”,是作為用戶輸入文本及程序交互途徑的一種?!ふ麄€窗口被叫做“GUI”-中文意思是“圖形用戶界面”,GUI的特性是包含:窗口、菜單、按鈕、滾動條等。沒有這些特性的程序叫做text-mode(文本模式程序)、commandline(命令行程序)*提問:平時在使用電腦時有沒有遇見過帶有GUI的程序和text-mode、commandline?(答案:windows窗口DOS)·>>>-叫做提示符(Prompt),指程序正在等待你鍵入信息時顯示的符號。來點指令吧!>>>print“Heyman!”回車(每輸入完一行指令都要輸入回車以跳轉(zhuǎn)到下一行)Print-打?。睿?,指在屏幕上顯示文本,而不是常說的用打印機打印在紙上。?。∽⒁?gt;>顏色<<注意!!問:IDEL里為什么會有這些奇妙的顏色呢?答:IDLE為了幫助我們更好的理解和閱讀這些內(nèi)容,會用不同的顏色來區(qū)分代碼(code)不同的部分,print的顏色就是橙色。!!注意>>錯誤<<注意!!問:SyntaxError:invalidsyntax是個什么東西?答:直譯“語法錯誤:無效的語法”,表示python不懂你輸入的內(nèi)容,因為print被錯誤的拼成了point。及python交互我們剛剛執(zhí)行的第一條指令:heyman,就是在和python交互,這種輸入代碼及計算機交流的過程就叫做交互。多試一條指令!>>>print5+38>>>計算機非常擅長算術(shù)運算,計算機被創(chuàng)造出來的初期就是被用來數(shù)據(jù)計算。再試一條指令!>>>print5*315>>>======Mr.LeeTIPS======幾乎所有計算機程序和語言中都使用*符號作為乘號。這個符號稱作“星號”或“星”。======口算&計算器&python三者進行對比吧======口算:Print5*3計算器:Print98765431-9876543======口算&計算器&python三者進行對比吧======利用python你除了可以超大數(shù)的數(shù)學(xué)計算之外,你還可以做些令人意想不到的事情,例如:>>>print“Dog”+“brother”Dogbrother>>或者>>>print“whereisplane”*20whereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplanewhereisplane>>>計算機除了非常擅長運算外,另一件事情就是反復(fù)的做事情,重要的是它不會感到枯燥,就像上面我讓計算機喊了20句whereisplane,如果你高興可以讓它喊到直到MH370出現(xiàn),前提是馬航要給力還有就是不要停電……編程任務(wù)到目前為止,我們只是看到單個python指令的演示,其實程序就是多個指令的集合。創(chuàng)建程序的方法:a.通過PythonShell菜單欄→File→NewWindows創(chuàng)建;b.快捷鍵:Ctrl+N。*新程序窗口標題欄顯示“Untitled”(未命名)。如何給程序取名字?2、程序1我們的第一個程序-“我愛吃香蕉”print“我愛吃香蕉!”print“香蕉”*20print“mua”*40print“我吃撐了!”保存/另存(命名)你的程序文檔File→Save/SaveAs輸入完指令后通過Save快:Ctrl+N保存or另存為SaveAs快:Ctrl+Shift+S?。∽⒁?gt;>擴展名<<注意?。≥斎胪瓿绦蛎Q后一定不要忘了加上.py,否則在python中將看不到程序中命令的顏色和windows不知道該用什么程序來打開這個文件。======Mr.LeeTIPS======如果你想要你的程序支持中文,需要在程序的第一行加上代碼:#encodingXXX#XXX用各國文字編碼代碼來替換,各國文字編碼代碼可以查詢百度。例如,簡體中文的代碼是:GBK,則程序的第一行應(yīng)寫上:#encodingGBK#======Mr.LeeTIPS======如果出了問題在編程過程中容易出現(xiàn)的問題歸納為兩大類:syntaxerror(語法錯誤):指編程語言的拼寫和文法規(guī)則出現(xiàn)錯誤,意味著你鍵入的某個內(nèi)容不是正確的Python代碼。例如:>>>printwhereisplane”syntaxerror:invalidsyntax(語法錯誤:無效的語法)there'sanerrorisyourprogram(這是一個錯誤的程序)>>>錯誤原因:where前面漏了一個引號2、runtimeerror(運行時錯誤):只會在程序運行時才會發(fā)生的錯誤,是IDLE或python無法檢測出來的錯誤。例如:程序2運行時錯誤-“我愛大鱷魚”>>>print“你好!歡迎來到我的動物園!”print“我的動物園有好多好多的動物,例如:”print“鱷魚”+5>>>錯誤原因:IDLE1.2.1========NoSubprocess=========>>>你好!歡迎來到我的動物園!我的動物園有好多好多的動物,例如:Traceback(mostrecentcalllast):(錯誤的開始)File“C:\Users\Administrator\Destop\ilovebigcayman.py”,line4,in<module>(錯誤發(fā)生的位置/程序文件保存的路徑)Print“鱷魚”+5(出錯的代碼行)TypeError:cannotconcatenate‘str’and‘int’objects(python認為可能存在的問題,并不一定是在這里,但是會在這附近)=====================思考=====================為嘛print“鱷魚”*5可以,print“鱷魚”+5卻不行?=====================解惑=====================聽我說,這有點像將蘋果和鱷魚放在一起,在python中不能將兩個完全不同的東西放在一起,比如說數(shù)字(int)和文本(str)?!镑{魚”+5像是在說5個蘋果和3只鱷魚相加等于多少?結(jié)果是8,但是8個什么?完全沒有意義。不過幾乎所有東西都可以乘以一個數(shù)來翻倍,如果你有1只鱷魚,再乘以5,則你就會有5只鱷魚!(克隆大亂斗?。?。第二個程序任務(wù)第一個程序“我愛吃香蕉!”沒多大實際意義,僅僅只是在屏幕上打印了一些內(nèi)容,下面我們來是一個更加有意思的程序,記得給它取上一個名字,“NumGuess”是個不錯的名字。File→NewWindows→Save→“NumGuess.py”輸入以下代碼:======================================================#encoding=GBK#importrandomsecret=random.randint(1,100)guess=0tries=0print"你好,同學(xué)……我和你們班主任之間有一個秘密???"print"這個秘密就在1-99之間的一個數(shù)字。我會給你6次機會來猜這個數(shù)字,猜對你就可以獲贈加多寶一罐!"whileguess!=secretandtries<6:guess=input("來猜個數(shù)字吧!?")ifguess<secret:print"太低了喔!~"elifguess>secret:print"太高了喔!~"tries=tries+1ifguess==secret:print"哦也!你猜中這個數(shù)字了??!則加多寶的話,請出門左拐找你們蔣老師!"else:print"我不會給你更多機會了,同學(xué)!你現(xiàn)在得請我喝一瓶王老吉!"print"這個秘密數(shù)字就是————",secret======================================================程序解析:while、if、else、elif和input指令我們在以后會詳細的學(xué)到。程序概念點:由程序隨機選取秘密數(shù)。用戶輸入他猜的數(shù)。程序根據(jù)秘密數(shù)檢查用戶猜的結(jié)果:太大還是太???用戶不斷嘗試,直到猜出這個數(shù),或者用完所有機會。猜到的數(shù)及秘密數(shù)一致時,玩家獲勝。>>>教學(xué)過程結(jié)束。課堂小結(jié):學(xué)會了如何啟動IDLE;了解了交互模式;交給Python一些指令來執(zhí)行;看到了Python知道如何完成算術(shù)運算(包括非常大的數(shù));啟動IDLE文本編輯器鍵入你的第一個程序:我愛吃香蕉;運行你的第一個Python程序;了解如何查看錯誤消息;運行你的第二個Python程序:猜數(shù)游戲。課堂練習(xí)之用腦想一想:如何啟動IDLE?print的作用是什么?Python中表示乘法和除法的符號是什么?GUI的特性包括哪些?如果想要你的程序支持中文,需要做什么?課堂練習(xí)之動手做一做:1.在交互模式中,使用Python計算一周有多少分鐘。2.編寫一個簡短的小程序,打印3行:你的名字、出生日期,還有你最喜歡的顏色。(結(jié)果應(yīng)該是下面這樣)我的名字叫XX,我是XX運動隊的。我1988年08月20日出生。我最喜歡的顏色是粉紅色。課后反思時間:課題判斷循環(huán)教學(xué)目標掌握if語句:單分支、雙分支、多分支、嵌套完成條件語句實例:登錄認證模塊學(xué)會判斷輸入是否合法了解三元表達式掌握range()掌握循環(huán)語句掌握for語句掌握while掌握break、continue、pass完成循環(huán)語句實例:登錄認證模塊擴展教學(xué)重點掌握if語句:單分支、雙分支、多分支、嵌套了解三元表達式掌握range()掌握循環(huán)語句掌握for語句掌握while掌握break、continue、pass教學(xué)難點完成條件語句實例:登錄認證模塊完成循環(huán)語句實例:登錄認證模塊擴展主要教法講授演示法+上機操作教學(xué)過程一、新課講授掌握if語句單分支if表達式: 代碼塊1else: 代碼塊雙分支if表達式1: 代碼塊1elif表達式2: 代碼塊2多分支if表達式1: 代碼塊1elif表達式2: 代碼塊2…else:代碼塊_其他嵌套了解三元表達式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:else_suite例如:結(jié)果:掌握while掌握break、continue、pass語法結(jié)構(gòu):whileboolean_expression: while_suiteelse: else_suite解釋:如果boolean_expression的結(jié)果為True,循環(huán)就會執(zhí)行;boolean_expression的結(jié)果為False時終止循環(huán),此時如果有else分支,則會執(zhí)行。以上結(jié)構(gòu)中,else分支為可選部分。else代碼塊:循環(huán)不滿足循環(huán)條件終止,才會執(zhí)行,如果循環(huán)終止是由break跳出,則else分支不會執(zhí)行。例如:break:跳出所處的最近層循環(huán)continue:跳到所處的最近層循環(huán)的開始處pass:占位語句例如:執(zhí)行結(jié)果:二、上機練習(xí)條件語句實例:登錄認證模塊判斷輸入是否合法非法用戶提示警告信息合法用戶提示登錄成功username=raw_input("username:")
ifusername=='':
print"用戶名不能為空"
else:
print"\033[1;33;45m登錄成功,歡迎%s\033[0m"%usernamechr()ord()循環(huán)語句實例:登錄認證模塊擴展直接回車無效,繼續(xù)輸入驗證用戶身份是否合法三、課堂小結(jié)if語句:單分支、雙分支、多分支、嵌套、三元表達式、range()、循環(huán)語句、for語句、while、break、continue、pass登錄認證模塊展示課后反思時間:課題python序列-字符串教學(xué)目標了解序列類型常用操作了解索引和切片掌握類型轉(zhuǎn)化掌握強制類型轉(zhuǎn)化學(xué)會字符串轉(zhuǎn)換實例:格式化輸出菜單列表,將用戶的輸入數(shù)值轉(zhuǎ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()教學(xué)重點了解序列類型常用操作了解索引和切片掌握類型轉(zhuǎn)化掌握強制類型轉(zhuǎn)化教學(xué)難點學(xué)會字符串轉(zhuǎn)換實例主要教法講授演示法+上機操作教學(xué)過程一、新課講授序列類型常用操作索引和切片索引:例:s[0]從左向右:索引從0開始;從右向左:索引從-1開始切片:例:s[0:2]擴展切片:指定步長,例:s[0:9:2]掌握類型轉(zhuǎn)化格式:print“字符串%format1%format2…”%(變量或值1,變量或值2...)符號及其對應(yīng)輸出格式:%d或%i 十進制整數(shù)或長整數(shù)%f 浮點數(shù)%s 字符串%% 用于輸出符號%舉例:強制類型轉(zhuǎn)化int():強制轉(zhuǎn)換為整型,例如:注意:只能將由數(shù)字組成的字符串轉(zhuǎn)換為整型錯誤用法float():強制轉(zhuǎn)換為浮點型例如str():強制轉(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()s.index(t):子串t首次出現(xiàn)的位置,找不到報錯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.s:所有字母轉(zhuǎn)化為大寫字母/小寫字母,大小寫互換s.count(t)統(tǒng)計t出現(xiàn)的次數(shù)二、上機練習(xí)字符串轉(zhuǎn)換實例:格式化輸出菜單列表;將用戶的輸入數(shù)值轉(zhuǎn)化整型并驗證三、本課小結(jié)序列類型常用操作、索引和切片、類型轉(zhuǎn)化、強制類型轉(zhuǎn)化、字符串常用方法學(xué)生展示:字符串轉(zhuǎn)換實例課后反思時間:課題python列表和元祖教學(xué)目標掌握列表基礎(chǔ)知識掌握列表相關(guān)方法掌握序列類型操作掌握生成器掌握元組類型掌握元組相關(guān)方法教學(xué)重點掌握列表相關(guān)方法掌握序列類型操作掌握生成器掌握元組類型教學(xué)難點掌握列表相關(guān)方法掌握元組相關(guān)方法主要教法講授演示法+上機操作教學(xué)過程一、新課講授掌握列表基礎(chǔ)知識列表的特點:支持異構(gòu):一個列表中含不同類型的對象支持嵌套:即列表中的元素可以是列表可變:支持通過索引,切片,進行修改如何定義列表:方法一:[];例:list1=[1,3,5]方法二:使用內(nèi)置函數(shù)list():內(nèi)建函數(shù)list(a_sequence)可以將一個序列轉(zhuǎn)為列表例1:>>>str1="dddgf">>>list1=list(str1)>>>list1['d','d','d','g','f']例2:(后面講)>>>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)例2insert():在指定索引位置插入列表也支持索引,例如:插入例子:pop():按照索引彈出元素,返回值為該元素。默認彈出最后一個元素。例如:remove():按照元素值彈出第一個匹配項例如:count():統(tǒng)計指定值出現(xiàn)的次數(shù)index():某個值第一次出現(xiàn)的位置例如:reverse():反向存放例如:查詢遍歷:forIinlistfori,kenument(list)sort():排序掌握序列類型操作:序列類型包括:字符串、列表、元組+連接*重復(fù)例如:max():求最大值、min():求最小值例如:掌握列表生成式列表生成式,是Python內(nèi)置的一種極其強大的生成list的表達式。用于:基于已有列表生成新列表語法結(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ù),作為新列表元素特點:一次性生成新列表,如果列表數(shù)據(jù)過大,會消耗大量資源。掌握元組類型定義元組:方法一:()例:tuple1=(1,3,4)方法二:使用內(nèi)置函數(shù)tuple():將可迭代對象中所有元素作為元組元素例:>>>list1=[1,2,3]>>>t1=tuple(list1)>>>t1(1,2,3)元組的特點支持異構(gòu);支持嵌套;不可變:不支持通過索引、切片,進行修改元組的遍歷例如:掌握元組相關(guān)方法 index():返回指定元素第一次出現(xiàn)的索引位置 count():指定元素出現(xiàn)的次數(shù)例如:二、上機練習(xí)練習(xí):三、本課小結(jié)列表基礎(chǔ)知識、列表相關(guān)方法、序列類型操作、生成器、元組類型、元組相關(guān)方法學(xué)生完成實例操作課后反思時間:課題運維平臺計算機管理實例教學(xué)目標登錄模塊實現(xiàn)添加計算機刪除計算機查詢可管理計算機教學(xué)重點登錄模塊實現(xiàn)教學(xué)難點查詢可管理計算機主要教法講授演示法+上機操作教學(xué)過程一、學(xué)習(xí)任務(wù)運維平臺計算機管理實例任務(wù)要求及注意事項二、上機練習(xí)學(xué)生上機實操:提示:三、任務(wù)展示及評價學(xué)生進行展示,完成互評及老師點評項目分值評價標準得分自評組評師評程序設(shè)計20編程技巧30調(diào)試過程運行結(jié)果30搭建合理穩(wěn)固小組配合20小組成員分工及配合方面總體得分課后反思時間:課題python字典和集合教學(xué)目標掌握字典類型掌握字典相關(guān)方法掌握字典的遍歷掌握集合類型掌握集合相關(guān)方法教學(xué)重點掌握字典相關(guān)方法掌握字典的遍歷掌握集合類型教學(xué)難點掌握字典的遍歷掌握集合相關(guān)方法主要教法講授演示法+上機操作教學(xué)過程一、新課講授掌握字典類型字典的特點無序:通過鍵實現(xiàn)元素存取,故無序可變:可以通過鍵進行改變異構(gòu):支持多種數(shù)據(jù)類型嵌套:可以在鍵值對中的值部分出現(xiàn)字典定義字典:方法一:{key1:value1,key2:value2,...}方法二:dict()內(nèi)置函數(shù):指定鍵值例:d2=dict(name="jerry",age="45",gender="m")關(guān)鍵點:鍵及值用冒號“:”分開;項及項用逗號“,”分開;字典中的鍵必須是唯一的,而值可以不唯一掌握字典相關(guān)方法更新或添加元素:dict1[key]=value例如:items():變量解包:即將字典轉(zhuǎn)化為鍵、值作為元組的列表例如:keys();鍵列表例如:values():值列表例如:has_key():判斷是否存在某個鍵,返回結(jié)果true或false例如:del刪除元素:調(diào)用python自身函數(shù)刪除例如:len():取得字典中鍵值對個數(shù)例如: update():在原字典上合并字典,鍵相同時會被覆蓋。 例如: get():取得某個鍵對應(yīng)的值例如: pop():彈出指定鍵對應(yīng)的值 popitem():隨機彈出鍵值對 clear():清除所有元素例如:掌握字典的遍歷:掌握集合類型什么是集合無序、互異,集合的功能及特點 支持成員關(guān)系判斷 支持迭代 不支持索引,切片元素唯一定義集合set方法一:{元素} 方法二:內(nèi)置函數(shù)set()例:集合相關(guān)方法:len():元素個數(shù)例如: add():添加元素例如: remove():刪除元素例如: update():合并集合例如: pop():隨機彈出某個元素例如:集合關(guān)系操作 s|t:s和t的并集例如: s&t:s和t的交集例如: s-t:求差集,存在于s集合而不存在于t集合中的例如: s^t:求對稱差集例如:二、上機練習(xí)學(xué)生上機完成字典類型、字典相關(guān)方法、字典的遍歷、集合類型、集合相關(guān)方法的案例練習(xí)。三、本課小結(jié)字典類型、字典相關(guān)方法、字典的遍歷、集合類型、集合相關(guān)方法課后反思時間:課題python文件處理教學(xué)目標掌握如何創(chuàng)建文件對象掌握open()三種基本模式掌握open()的附加模式掌握文件對象的相關(guān)方法掌握文件對象的相關(guān)屬性教學(xué)重點掌握如何創(chuàng)建文件對象掌握open()三種基本模式掌握open()的附加模式教學(xué)難點掌握文件對象的相關(guān)方法掌握文件對象的相關(guān)屬性主要教法講授演示法+上機操作教學(xué)過程一、新課講授掌握如何創(chuàng)建文件對象內(nèi)置函數(shù)open()同file():用于打開文件和創(chuàng)建文件對象,返回文件對象with打開文件:withopen('password')asf:#f=file('password')語法格式:open(文件名,模式)例如:掌握open()三種基本模式r:只讀,如果文件不存在,會發(fā)生異常例:w:寫入(覆蓋原有內(nèi)容),如果文件不存在,會創(chuàng)建文件例1:password文件內(nèi)容不為空,以w模式打開:結(jié)果:創(chuàng)建passwd文件a:附加(從文件尾部追加),如果文件不存在,會創(chuàng)建文件例如:掌握open()的附加模式+:表示同時支持讀寫aaa+可讀寫模式,寫只能寫在文件末尾處w+可讀寫,及a+的區(qū)別是要清空文件內(nèi)容r+可讀寫,及a+的區(qū)別是可以寫到文件任何位置掌握文件對象的相關(guān)方法readline():返回一行readlines():列表類型返回所有行內(nèi)容read():指定從文件讀取多少字節(jié),不指定字節(jié)數(shù)則讀取全部內(nèi)容,以字符串形式顯示。tell():當(dāng)前指針在文件中的位置(多少個字節(jié)的位置) seek():定義文件指針的偏移量 f.seek(偏移量,選項)write():將字符串寫入文件writelines():將字符序列寫入flush():刷新,將數(shù)據(jù)從緩存區(qū)寫入文件sldkjalsjaslkjdclose():關(guān)閉文件例如:例2:掌握文件對象的相關(guān)屬性mode:文件打開模式name:返回文件名closed:顯示文件是否已關(guān)閉掉例如:二、上機練習(xí)學(xué)生上機完成創(chuàng)建文件對象、open()三種基本模式、open()的附加模式、文件對象的相關(guān)上機練習(xí),熟練完成Python創(chuàng)建文件對象的方法。三、本課小結(jié)如何創(chuàng)建文件對象、open()三種基本模式、open()的附加模式、掌握文件對象的相關(guān)方法掌握文件對象的相關(guān)屬性課后反思時間:課題函數(shù)式編程一教學(xué)目標掌握什么是函數(shù)掌握函數(shù)的定義掌握函數(shù)的調(diào)用掌握函數(shù)形參和實參的區(qū)別了解函數(shù)的作用域:什么是作用域、作用域分類掌握函數(shù)的參數(shù):默認參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)教學(xué)重點掌握函數(shù)的調(diào)用掌握函數(shù)形參和實參的區(qū)別教學(xué)難點了解函數(shù)的作用域:什么是作用域、作用域分類掌握函數(shù)的參數(shù):默認參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)主要教法講授演示法+上機操作教學(xué)過程一、新課講授掌握什么是函數(shù)function功能def函數(shù)是python為了代碼重用和最小化代碼冗余而提供的基本程序結(jié)構(gòu)。函數(shù)將相關(guān)功能打包并參數(shù)化,將復(fù)雜的系統(tǒng)分解成可管理的部件。掌握函數(shù)的定義在這里說明幾點:在Python中采用def關(guān)鍵字進行函數(shù)的定義,不用指定返回值的類型。函數(shù)參數(shù)params可以是零個、一個或者多個,同樣的,函數(shù)參數(shù)也不用指定參數(shù)類型,因為在Python中變量都是弱類型的,Python會自動根據(jù)值來維護其類型。return語句是可選的,它可以在函數(shù)體內(nèi)任何地方出現(xiàn),表示函數(shù)調(diào)用執(zhí)行到此結(jié)束;如果沒有return語句,會自動返回NONE,如果有return語句,但是return后面沒有接表達式或者值的話也是返回NONE。下面看例子:例1:例2:例3:掌握函數(shù)的調(diào)用函數(shù)調(diào)用的方法:函數(shù)名(實際參數(shù))在Python中不允許前向引用,即在函數(shù)定義之前,不允許調(diào)用該函數(shù)例如下面的錯誤:掌握函數(shù)形參和實參的區(qū)別形參全稱是形式參數(shù),在用def關(guān)鍵字定義函數(shù)時函數(shù)名后面括號里的變量稱作為形式參數(shù)。實參全稱為實際參數(shù),在調(diào)用函數(shù)時提供的值或者變量稱作為實際參數(shù)例如:了解函數(shù)的作用域什么是作用域變量的作用域:即變量能夠使用的范圍作用域分類本地作用域:定義在函數(shù)體內(nèi)的變量(局部變量)在Python中,會為每個層次生成一個符號表,里層能調(diào)用外層中的變量,而外層不能調(diào)用里層中的變量,并且當(dāng)外層和里層有同名變量時,外層變量會被里層變量屏蔽掉,例如:在函數(shù)function中,while循環(huán)外面和while循環(huán)里面都有變量x,此時,while循環(huán)外面的變量x會被屏蔽掉。注意在函數(shù)內(nèi)部定義的變量作用域都僅限于函數(shù)內(nèi)部,在函數(shù)外部是不能夠調(diào)用的,一般稱這種變量為局部變量。 全局作用域:定義在主程序的變量(全局變量)它是在函數(shù)外部定義的,作用域是整個文件。全局變量可以直接在函數(shù)里面應(yīng)用,但是如果要在函數(shù)內(nèi)部改變?nèi)肿兞?,必須使用global關(guān)鍵字進行聲明掌握函數(shù)的參數(shù)默認參數(shù):定義函數(shù)時,“name=value”的形式設(shè)置參數(shù)默認值在Python中默認的是采用位置參數(shù)來傳參。這樣調(diào)用函數(shù)必須嚴格按照函數(shù)定義時的參數(shù)個數(shù)和位置來傳參,從左至右進行匹配,否則將會出現(xiàn)預(yù)想不到的結(jié)果調(diào)用函數(shù)時默認參數(shù)放后邊關(guān)鍵字參數(shù):調(diào)用函數(shù)時,使用“name=value”的形式通過參數(shù)名指定通過指定參數(shù)名字傳遞參數(shù)的時候,參數(shù)位置對結(jié)果是沒有影響的。關(guān)鍵字參數(shù)最厲害的地方在于它能夠給函數(shù)參數(shù)提供默認值,參數(shù)指定了默認值后,如果傳參時不指定參數(shù)名,則會從左到右依次進行傳參,關(guān)鍵參數(shù)要放在普通參數(shù)后面。例如:可變參數(shù)例1:*args,我們要定義一個函數(shù)的時候,必須要預(yù)先定義這個函數(shù)需要多少個參數(shù)(或者說可以接受多少個參數(shù))。一般情況下這是沒問題的,但是也有在定義函數(shù)的時候,不能知道參數(shù)個數(shù)的情況在Python里,帶*的參數(shù)就是用來接受可變數(shù)量參數(shù)的,這里接收的是元組數(shù)據(jù)例2:**kwargs,字典作為參數(shù):定義函數(shù)時使用**開頭的參數(shù),調(diào)用時使用“name=value”的形式,作為傳遞進來字典的鍵值對二、上機練習(xí)學(xué)生上機完成函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是函數(shù)函數(shù)的定義函數(shù)的調(diào)用函數(shù)形參和實參的區(qū)別函數(shù)的作用域:什么是作用域、作用域分類函數(shù)的參數(shù):默認參數(shù)、關(guān)鍵字參數(shù)、可變參數(shù)課后反思時間:課題函數(shù)式編程二教學(xué)目標遞歸函數(shù)掌握lambda表達式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器教學(xué)重點遞歸函數(shù)教學(xué)難點掌握lambda表達式enumerate函數(shù)序列化yield函數(shù)(迭代)主要教法講授演示法+上機操作教學(xué)過程一、新課講授遞歸函數(shù):在函數(shù)內(nèi)部,可以調(diào)用其他函數(shù)。如果一個函數(shù)在內(nèi)部調(diào)用自身本身,這個函數(shù)就是遞歸函數(shù);例1例2掌握lambda表達式lambda函數(shù)也叫匿名函數(shù),即,函數(shù)沒有具體的名稱,而用def創(chuàng)建的方法是有名稱的語法:lambda參數(shù):表達式lambda語句中,冒號前是參數(shù),可以有多個,用逗號隔開,冒號右邊的返回值。lambda語句構(gòu)建的其實是一個函數(shù)對象舉例:f1=lambdax,y:x+y f1(2,3)和map函數(shù)共同使用:Map()第一個參數(shù)接收一個函數(shù)名,第二個參數(shù)接收一個可迭代對象例如:Lambda和map共同使用enumerate函數(shù)用于遍歷序列中的元素以及它們的下標yield函數(shù):yield的作用就是把一個函數(shù)變成一個generator,帶有yield的函數(shù)不再是一個普通函數(shù),Python解釋器會將其視為一個generator例如:裝飾器裝飾器就是為已經(jīng)存在的對象添加額外的功能。比如1:例如2:其中@語法糖:相當(dāng)于run=login(run)二、上機練習(xí)學(xué)生上機完成本節(jié)函數(shù)式編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)遞歸函數(shù)掌握lambda表達式enumerate函數(shù)序列化yield函數(shù)(迭代)裝飾器課后反思時間:課題常用模塊一教學(xué)目標了解什么是模塊了解模塊和文件掌握導(dǎo)入模塊:模塊搜索路徑、import語句導(dǎo)入模塊、from語句導(dǎo)入模塊os模塊及方法:系統(tǒng)相關(guān)、目錄相關(guān)、路徑相關(guān)、文件相關(guān)、查詢相關(guān)教學(xué)重點了解模塊和文件教學(xué)難點掌握導(dǎo)入模塊os模塊及方法:主要教法講授演示法+上機操作教學(xué)過程一、新課講授了解什么是模塊模塊是一個包含定義的變量,函數(shù)和類的文件,其后綴名是.py。模塊可以被其他程序?qū)?,以使用該模塊中的變量,函數(shù)和類。了解模塊和文件if__name__=="__main__":print‘xxxx’如果作為程序文件獨立執(zhí)行,__name__變量值為__main__,則執(zhí)行if__name__=="__main__":后的語句。如果作為模塊導(dǎo)入其他文件,__name__變量值為模塊名,則不執(zhí)行if__name__=="__main__":后的語句,在導(dǎo)入進的文件中調(diào)用時才對應(yīng)執(zhí)行。掌握導(dǎo)入模塊模塊搜索路徑:importsysprintsys.path查看以列表顯示的搜索路徑例如:import語句導(dǎo)入模塊importmodule導(dǎo)入模塊importmoduleasmodule_alias以別名導(dǎo)入模塊from語句導(dǎo)入模塊frommodulesimportnames導(dǎo)入模塊的指定屬性或方法掌握os模塊常用方法(實現(xiàn)跨平臺的操作系統(tǒng)應(yīng)用接口)指示正在使用的平臺;如果是window則用'nt'表示,對于Linux/Unix用戶,它是'posix'例如:調(diào)用系統(tǒng)命令的方法os.system():調(diào)用操作系統(tǒng)的命令;例如os.popen()調(diào)用系統(tǒng)命令,但結(jié)果是返回對象例如:目錄相關(guān)的方法:getcwd():查看當(dāng)前目錄。即python腳本工作的目錄路徑;例如:chdir():切換目錄;例如:os.walk():遍歷目錄樹walk(top,topdown=True,onerror=None)listdir():列出指定目錄下文件及子目錄;如:顯示c盤文件和目錄:mkdir():創(chuàng)建目錄;如:makedirs():創(chuàng)建多層級目錄;如:rmdir():刪除空目錄;例如:removedirs():刪除多層級空目錄;例如:路徑相關(guān)的方法:os.path.split():函數(shù)返回一個路徑的目錄名和文件名;例如:os.path.abspath(name):獲得絕對路徑;如:os.path.splitext():分離文件名及擴展名,例如:os.path.join(path,name):連接目錄及文件名或目錄,例如:os.path.basename(path):返回文件名;例如:os.path.dirname(path):返回文件路徑,例如:文件相關(guān)的方法:remove():刪除文件,如:rename():重命名文件,如查詢相關(guān)方法os.path.exists()函數(shù)用來檢驗給出的路徑是否真地存在,如:os.path.isfile()和os.path.isdir()函數(shù)分別檢驗給出的路徑是一個文件還是目錄。例如:islink():是否為鏈接文件文件信息相關(guān)方法:stat():查看文件狀態(tài)信息getatime():訪問時間getctime():狀態(tài)改變時間(例如權(quán)限等)getmtime():修改時間os.path.getsize(name):獲得文件大小,如果name是目錄返回0L,二、上機練習(xí)學(xué)生上機完成本節(jié)模塊及文件的上機編程任務(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)課后反思時間:課題常用模塊二教學(xué)目標掌握Random模塊掌握MD5加密模塊掌握Time模塊掌握Sys模塊教學(xué)重點掌握Random模塊教學(xué)難點掌握MD5加密模塊主要教法講授演示法+上機操作教學(xué)過程一、新課講授random模塊random.randintrandom.randint()的函數(shù)原型為:random.randint(a,b),用于生成一個指定范圍內(nèi)的整數(shù)。其中參數(shù)a是下限,參數(shù)b是上限,生成的隨機數(shù)n:a<=n<=bprintrandom.randint(12,20)#生成的隨機數(shù)n:12<=n<=20printrandom.randint(20,20)#結(jié)果永遠是20#printrandom.randint(20,10)#該語句是錯誤的。下限必須小于上限。Random.randrange([start],stop[,step])從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個隨機數(shù)。如:random.randrange(10,100,2),結(jié)果相當(dāng)于從[10,12,14,16,...96,98]序列中獲取一個隨機數(shù)Md5加密模塊Time模塊Sys模塊sys.argv實例importsys
defread):#從文件中讀出文件內(nèi)容
'''''Printathestandardoutput.'''
f=file()
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,顯示版本號
print'Version1.2'
elifoption=='help':#當(dāng)命令行參數(shù)為--help時,顯示相關(guān)幫助內(nèi)容
print'''''/
Thisprogramprintsfilestothestandardoutput.
Anynumberoffilescanbespecified.
Optionsinclude:
--version:Printstheversionnumber
--help:Displaythishelp'''
else:
print'Unknownoption.'
sys.exit()
else:
forinsys.argv[1:]:#當(dāng)參數(shù)為文件名時,傳入readfile,讀出其內(nèi)容
read)二、上機練習(xí)學(xué)生上機完成本節(jié)Random模塊、MD5加密模塊、Time模塊、Sys模塊的上機編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)Random模塊MD5加密模塊Time模塊Sys模塊課后反思時間:課題錯誤及異常和正則表達式教學(xué)目標了解什么是錯誤了解什么是異常掌握python中的常見異常掌握檢測和處理異常掌握處理異常的特殊方法:斷言、拋出異常、掌握re模塊教學(xué)重點掌握python中的常見異常教學(xué)難點掌握檢測和處理異常掌握處理異常的特殊方法:斷言、拋出異常主要教法講授演示法+上機操作教學(xué)過程一、新課講授了解什么是錯誤錯誤分為:語法錯誤和邏輯錯誤了解什么是異常異常:當(dāng)python檢測到錯誤(語法錯誤或者邏輯錯誤等)時,導(dǎo)致解釋器無法繼續(xù)執(zhí)行下去,這時候就出現(xiàn)了異常.異常拋出:為程序開發(fā)人員提供了一種在運行時發(fā)現(xiàn)錯誤,進行恢復(fù)處理,繼續(xù)執(zhí)行的能力。掌握python中的常見異常NameError---------使用一個還未賦予對象的變量SyntaxError-------語法出錯IOError-----------輸入/輸出操作失敗,基本是無法打開文件ImportError-------無法導(dǎo)入模塊或者包,基本是路徑問題IndentationError--語法錯誤,代碼沒有正確的對齊(縮進錯誤)IndexError--------下標索引超出序列邊界 TypeError---------傳入的對象類型及要求不符AttributeError----對象沒有這個屬性,試圖訪問一個對象沒有的屬性或是方法掌握檢測和處理異常python編程_Python異常機制try:代碼段except異常類型,e:異常處理代碼段,如果不知道異常類型,可以使用try:代碼段exceptExcept,e:異常處理代碼段;Except是通用異常類型try: 語句-->捕捉這里語句的異常exceptException1[,reason]:-->異常判斷語句 語句-->異常處理語句exceptException2[,reason]:-->異常判斷語句 語句-->異常處理語句except:-->空except語句用于捕捉其他異常 語句else: -->未發(fā)生異常時執(zhí)行語句 finally: -->無論是否發(fā)生異常都執(zhí)行 語句5,掌握處理異常的特殊方法 5.1斷言 語法:assertexpression[,reason]assert是斷言的關(guān)鍵字。執(zhí)行該語句的時候,先判斷表達式expression,如果表達式為真,則什么都不做;如果表達式不為真,則拋出異常了解什么是正則表達式正則表達式(RE)是由普通字符和特殊符號組成的字符串,描述了這些字符的某種組合方式,因此能按某種模式匹配一組有相似特征的字符串.了解什么是re模塊Python的re模塊用于實現(xiàn)正則表達式。掌握正則表達式中的特殊字符\d匹配任何數(shù)字\D匹配非數(shù)字字符\w匹配字母,數(shù)字,下劃線\W匹配不是字母,數(shù)字,下劃線的字符\s匹配空白字符\S匹配不是空白的字符掌握re模塊的常用方法compile()功能:編譯正則表達式用法:compile(pattern,flags=0)findall()功能:取得每個()中正則匹配的內(nèi)容(沒有()則整個正則匹配的部分),返回匹配列表用法:findall(pattern,string[,flags])match()匹配:從字符串的開頭對模式進行匹配,如果成功,則返回一個對象;如果失敗,則返回None。用法:match(pattern,string)search()搜索:search會檢查字符串任意位置及給定正則表達式的搜索情況。如果搜索到成功的匹配,會返回一個匹配對象,否則返回None。用法:search(pattern,string)split()功能:正則表達式作為分隔符把字符串分割為一個列表,返回列表,最多分割max次(默認是分割所有匹配的地方)用法:split(pattern,string,max=0)importre
a=""
printre.split('\.',a)sub()和subn()功能:將某字符串中匹配正則表達式模式的部分進行替換。subn()和sub()一樣,但它還返回一個表示替換次數(shù)的數(shù)字;替換后的字符串和表示替換次數(shù)的數(shù)字作為一個元組返回。用法:sub(pattern,repl,string,max=0)掌握匹配或搜索返回對象的常用的方法group()返回整個正則表達式匹配的字符串,同group(0)group(i)正則表達式中第i個“()”括起來部分正則表達式匹配的內(nèi)容groups()返回各個()括起來的正則表達式匹配的字符串組成的元組start()返回匹配開始的位置end()返回匹配結(jié)束的位置span()返回匹配開始和結(jié)束的位置二、上機練習(xí)學(xué)生上機完成本節(jié)python中的常見異常、檢測和處理異常、處理異常的特殊方法、re模塊的上機編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)什么是錯誤、什么是異常python中的常見異常檢測和處理異常處理異常的特殊方法:斷言、拋出異常、re模塊課后反思時間:課題及數(shù)據(jù)庫交互教學(xué)目標掌握數(shù)據(jù)庫連接方法掌握數(shù)據(jù)庫模塊方法學(xué)會數(shù)據(jù)庫操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)掌握數(shù)據(jù)庫關(guān)閉方法教學(xué)重點數(shù)據(jù)庫操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)教學(xué)難點數(shù)據(jù)庫模塊方法主要教法講授演示法+上機操作教學(xué)過程一、新課講授數(shù)據(jù)庫的連接mysqldb解決依賴性yuminstallpython-develmysql-develzlib-developenssl-devel導(dǎo)入模塊建立連接常見參數(shù)數(shù)據(jù)庫模塊方法commit()提交
rollback()回滾看一個簡單的查詢示例如下:cursor方法執(zhí)行及返回值cursor方法提供兩類操作:1.執(zhí)行命令,2.接收返回值。
cursor用來執(zhí)行命令的方法execute(self,query,args)
//執(zhí)行單條sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)
executemany(self,query,args)
//移動到下一個結(jié)果集
cursor用來接收返回值的方法
//接收全部的返回結(jié)果行.
fetchall(self)
//接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會返回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()方法獲取操作游標
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()數(shù)據(jù)庫插入操作代碼如下:#!/usr/bin/python
#encoding:utf-8
importMySQLdb
#打開數(shù)據(jù)庫連接
db=MySQLdb.connect("localhost","root","361way","test")
#使用cursor()方法獲取操作游標
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()
這里是一個單sql執(zhí)行的示例,cursor.executemany的用法感興趣的讀者可以參看相關(guān)的aws主機資產(chǎn)管理系統(tǒng)示例。
上例也可以寫成通過占位符傳參的方式進行執(zhí)行,如下:代碼如下:#!/usr/bin/python
#encoding:utf-8
importMySQLdb
#打開數(shù)據(jù)庫連接
db=MySQLdb.connect("localhost","testuser","test123","TESTDB")
#使用cursor()方法獲取操作游標
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ā)生錯誤時回滾
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()方法獲取操作游標
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()
以上腳本執(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ù),以下實例將test表中的SEX字段全部修改為'M',AGE字段遞增1:代碼如下:#encoding:utf-8
#!/usr/bin/python
importMySQLdb
#打開數(shù)據(jù)庫連接
db=MySQLdb.connect("localhost","root","361way","test")
#使用cursor()方法獲取操作游標
cursor=db.cursor()
#SQL更新語句
sql="UPDATEEMPLOYEESETAGE=AGE+1
WHERESEX='%c'"%('M')
try:
#執(zhí)行SQL語句
cursor.execute(sql)
#提交到數(shù)據(jù)庫執(zhí)行
mit()
except:
#發(fā)生錯誤時回滾
db.rollback()
#關(guān)閉數(shù)據(jù)庫連接
db.close()3.5刪除記錄語句
sql="DELETEFROMEMPLOYEEWHEREAGE>'%d'"%(20)
try:
#執(zhí)行SQL語句
cursor.execute(sql)
#向數(shù)據(jù)庫提交
mit()
except:
#發(fā)生錯誤時回滾
db.rollback()
對于支持事務(wù)的數(shù)據(jù)庫,在Python數(shù)據(jù)庫編程中,當(dāng)游標建立之時,就自動開始了一個隱形的數(shù)據(jù)庫事務(wù)。commit()方法游標的所有更新操作,rollback()方法回滾當(dāng)前游標的所有操作。每一個方法都開始了一個新的事務(wù)。二、上機練習(xí)學(xué)生上機完成本節(jié)python中的數(shù)據(jù)庫連接、數(shù)據(jù)庫操作、數(shù)據(jù)庫關(guān)閉的上機編程任務(wù),教師巡視指導(dǎo)。三、本課小結(jié)數(shù)據(jù)庫連接數(shù)據(jù)庫模塊方法數(shù)據(jù)庫操作:增加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)、查詢數(shù)據(jù)數(shù)據(jù)庫關(guān)閉課后反思時間:課題Python實例:監(jiān)測服務(wù)器硬盤、cpu、內(nèi)存使用率教學(xué)目標完成教學(xué)任務(wù)實例:具體如下硬盤監(jiān)控cpu監(jiān)控內(nèi)存監(jiān)控網(wǎng)卡監(jiān)控進程監(jiān)控教學(xué)重點硬盤監(jiān)控cpu監(jiān)控內(nèi)存監(jiān)控網(wǎng)卡監(jiān)控進程監(jiān)控教學(xué)難點進程監(jiān)控主要教法講授演示法+上機操作教學(xué)過程一、學(xué)習(xí)任務(wù)學(xué)習(xí)任務(wù):監(jiān)測服務(wù)器硬盤、cpu、內(nèi)存使用率任務(wù)。要求及注意事項完成教學(xué)任務(wù)實例:具體如下硬盤監(jiān)控cpu監(jiān)控內(nèi)存監(jiān)控網(wǎng)卡監(jiān)控進程監(jiān)控二、上機練習(xí)學(xué)生上機實操:提示:Psutil可以獲取系統(tǒng)運行的進程、CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等信息,主要應(yīng)用于系統(tǒng)監(jiān)控,分析和限制系統(tǒng)資源以及進程的管理,它實現(xiàn)了類似一下ps、top、lsof、pmap、who、iotop等命令功能,并且跨平臺支持32、64位操作系統(tǒng),還支持2.4到3.x版本的python版本監(jiān)控服務(wù)器硬盤使用率代碼如下:#psutilmemoryinformations內(nèi)存使用率#磁盤使用率
disk=psutil.disk_partitions()
foriindisk:
print"磁盤:%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ò)使用率監(jiān)控服務(wù)器cpu使用率defcpu():
whileTrue:
time.sleep(1)
cpu_liyonglv=psutil.cpu_percent()
print"當(dāng)前cpu利用率:\033[1;31;42m%s%%\033[0m"%cpu_liyonglv
ifcpu_liyonglv>15.0:
baojing()
defbaojing():
i=0
whilei<10:
i+=1
time.sleep(0.5)
winsound.PlaySound("ALARM8",winsound.SND_ALIAS)
cpu()監(jiān)控服務(wù)器內(nèi)存使用率memory=psutil.virtual_memory()
printmemory.used
printmemory.total
ab=float(memory.used)/float(memory.total)*100
print"%.2f%%"%ab
printpsutil.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)前登錄用戶:",users[0].name
#時間
curent_time=psutil.boot_time()
curent_time_1=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime(curent_time))
printcurent_time_1進程監(jiān)控腳本如下:#讀取進程pid,名稱,可執(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ù)展示及評價學(xué)生進行展示,完成互評及老師點評項目分值評價標準得分自評組評師評程序設(shè)計20編程技巧30調(diào)試過程運行結(jié)果30搭建合理穩(wěn)固小組配合20小組成員分工及配合方面總體得分課后反思時間:課題監(jiān)控服務(wù)模塊開發(fā)監(jiān)控及apache服務(wù)實例開發(fā)制作教學(xué)目標socket模塊Socket
類型Socket
函數(shù)socket編程思路Socket編程之服務(wù)端代碼Socket編程之客戶端代碼監(jiān)控apache服務(wù)實例開發(fā)制作教學(xué)重點socket模塊監(jiān)控apache服務(wù)實例開發(fā)制作教學(xué)難點監(jiān)控apache服務(wù)實例開發(fā)制作主要教法講授演示法+上機操作教學(xué)過程一、新課講授SOCKET:網(wǎng)絡(luò)上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個連接的一端稱為一個socket。Socket的英文原義是“孔”或“插座”。作為BSDUNIX的進程通信機制,取后一種意思。通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現(xiàn)不同虛擬機或不同計算機之間的通信socket模塊Python提供了兩個基本的socket模塊。
第一個是Socket,它提供了標準的BSDSocketsAPI。
第二個是SocketServer,它提供了服務(wù)器中心類,可以簡化網(wǎng)絡(luò)服務(wù)器的開發(fā)。Socket
類型套接字格式:socket(family,type[,protocal])
使用給定的地址族、套接字類型、協(xié)議編號(默認為0)來創(chuàng)建套接字。socket類型描述socket.AF_UNIX只能夠用于單一的Unix系統(tǒng)進程間通信socket.AF_INET服務(wù)器之間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年鐵路機車項目建議書
- Unit 7 單詞變形及練習(xí) 人教版英語八年級上冊
- Tenacissoside-E-生命科學(xué)試劑-MCE
- Sulfuric-34S-acid-disodium-生命科學(xué)試劑-MCE
- Sucrose-octaacetate-Standard-生命科學(xué)試劑-MCE
- 2024-2025學(xué)年新教材高中英語Unit5Revealingnature單元素養(yǎng)評估課時作業(yè)含解析外研版選擇性必修第一冊
- 三年級英語下冊Module4Unit2DoesLinglinglikeoranges說課稿外研版三起
- 統(tǒng)考版2025屆高考地理二輪復(fù)習(xí)專題闖關(guān)導(dǎo)練熱點3精準扶貧與鄉(xiāng)村振興含解析
- 2024年家用電器批發(fā)服務(wù)項目建議書
- 2024年交叉極化傳輸用微波天線項目合作計劃書
- 人教版六年級數(shù)學(xué)上冊第五單元《圓》單元分層作業(yè)設(shè)計
- MOOC 房地產(chǎn)管理-華中科技大學(xué) 中國大學(xué)慕課答案
- 經(jīng)濟思想史智慧樹知到期末考試答案2024年
- 2.3周而復(fù)始的循環(huán)課件教科版高中信息技術(shù)必修1
- 統(tǒng)計學(xué)計算題及統(tǒng)計學(xué)計算題例題
- 水中嗜肺軍團菌檢驗方法 酶底物定量法
- 耳穴壓豆治療糖尿病
- (2024年)計劃生育完整版課件
- 國際關(guān)系理論智慧樹知到期末考試答案2024年
- (2024年)冠心病的診斷和規(guī)范化治療
- 卡西尼卵形線在高考中應(yīng)用
評論
0/150
提交評論