《Python網(wǎng)絡(luò)滲透編程》 課件 項目二 Python語言基礎(chǔ)_第1頁
《Python網(wǎng)絡(luò)滲透編程》 課件 項目二 Python語言基礎(chǔ)_第2頁
《Python網(wǎng)絡(luò)滲透編程》 課件 項目二 Python語言基礎(chǔ)_第3頁
《Python網(wǎng)絡(luò)滲透編程》 課件 項目二 Python語言基礎(chǔ)_第4頁
《Python網(wǎng)絡(luò)滲透編程》 課件 項目二 Python語言基礎(chǔ)_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Python基本語法Pythonbasicsyntaxpython的運行環(huán)境官方開發(fā)運行環(huán)境第三方集成開發(fā)環(huán)境Python的運行環(huán)境特點IDLE(IntegratedDevelopmentandLearningEnvironment)集成開發(fā)和學(xué)習(xí)環(huán)境官方運行環(huán)境簡單易用,適合初學(xué)者交互式界面,所見即所得包含的編輯器,簡潔易上手Python的運行環(huán)境第三方的集成開發(fā)環(huán)境特點集成度高比較適合開發(fā)大型的項目智能語法提示python程序的特點python程序的特點python語句的特點一般情況下,每行一條語句,不需要用“;”結(jié)尾,也可以每行多條語句,語句之間用“;”分隔python程序的特點python語句的特點

語句的縮進(jìn)非常重要,同一子部分的語句縮進(jìn)要相同python程序的特點python語句的特點

單行注釋:#多行注釋三個單引號(''')三個雙引號(""")python的控制結(jié)構(gòu)一句跟著一句執(zhí)行順序結(jié)構(gòu)通過條件判斷,最終選擇出所需要的結(jié)果選擇結(jié)構(gòu)通過重復(fù)有規(guī)律性的操作,從而減少代碼量,使代碼表達(dá)更為簡潔循環(huán)結(jié)構(gòu)python的控制結(jié)構(gòu)python的控制結(jié)構(gòu)選擇結(jié)構(gòu)應(yīng)用案例用戶輸入自己的成績,如果成績小于0或大于100,提示輸入錯誤;

如果成績大于等于60小于80,輸出“還不錯”;如果成績大于80小于等于100,輸出“非常棒!”輸入成績SS<0orS>100輸入錯誤YESNOS<=60繼續(xù)努力S<=80還不錯非常棒YESNOYESNOpython的控制結(jié)構(gòu)python的控制結(jié)構(gòu)Python的選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)python的控制結(jié)構(gòu)還可選擇怎樣的分支結(jié)構(gòu)?思考python的控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)應(yīng)用案例用戶輸入若干成績,求所有成績的平均分。每輸入一個成績后詢問是否繼續(xù)輸入下一個成績,回答‘n’就停止輸入成績。python中主要有兩種循環(huán)形式while循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)python的控制結(jié)構(gòu)while循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)循環(huán)次數(shù)難以提前確定循環(huán)次數(shù)可以提前確定循環(huán)結(jié)構(gòu)強制退出循環(huán)python的控制結(jié)構(gòu)強制退出循環(huán)break:一旦break語句被執(zhí)行,將使得break語句所屬層次的循環(huán)提前結(jié)束。continue:作用是提前結(jié)束本次循環(huán),并忽略continue之后的所有語句,直接回到循環(huán)的頂端,提前進(jìn)入下一次循環(huán)。python的循環(huán)中還可以帶有else子句python的控制結(jié)構(gòu)else:循環(huán)因為條件表達(dá)式不成立或序列遍歷結(jié)束而自然結(jié)束執(zhí)行else結(jié)構(gòu)中的語句不執(zhí)行else中的語句循環(huán)因為執(zhí)行了break語句而導(dǎo)致提前結(jié)束循環(huán)正常結(jié)束執(zhí)行循環(huán)非正常結(jié)束不執(zhí)行python的控制結(jié)構(gòu)while循環(huán)for循環(huán)異常處理Exceptionhandling課堂導(dǎo)入引發(fā)錯誤的原因:程序中的異常:程序運行時引發(fā)的錯誤如零作為除數(shù)文件不存在下標(biāo)越界網(wǎng)絡(luò)異常這些錯誤得不到正確的處理將會導(dǎo)致程序崩潰并終止運行課堂導(dǎo)入異常處理合理使用異常處理結(jié)構(gòu)程序更加健壯,具有更高的容錯性不會因為用戶不小心的錯誤而造成程序崩潰為用戶提供更加友好的提示界面程序執(zhí)行過程中出錯而在正常控制流之外采取的行為教學(xué)目標(biāo)掌握實現(xiàn)異常處理的語法。掌握異常處理的邏輯概念及含義。知識目標(biāo)能力目標(biāo)學(xué)會用Python內(nèi)置的多種異常類,定義自己的異常類。運用Python多種不同形式的異常處理結(jié)構(gòu),處理可能發(fā)生的錯誤。異常處理的基本概念無法運行易發(fā)現(xiàn)解決可以運行錯誤結(jié)果語法錯誤拼寫錯誤縮進(jìn)不一致引號或括號不閉合邏輯錯誤異常處理的基本概念運行時由于某些條件不符合而引發(fā)的錯誤,一旦引發(fā)異常并且沒有得到有效的處理,一般是直接導(dǎo)致程序崩潰。異常錯誤輸入:60主程序處理輸出:優(yōu)秀!Python內(nèi)置的異常類Python內(nèi)置的異常類BaseException為所有異常的基類SystemExitKeyboardInterruptGeneratorExitException用戶直接拿來使用繼承這些類定義自己的異常類Python內(nèi)置的異常類Exception為所有非系統(tǒng)退出類異常的基類,Python提倡繼承Exception或其子類派生新的異常。Python內(nèi)置的異常類Exception下包含異常MemoryError(內(nèi)存溢出)BlockingIOError(IO異常)SyntaxError(語法錯誤異常)異常處理結(jié)構(gòu)舉例異常處理結(jié)構(gòu)舉例在python中提供了多種不同形式的異常處理結(jié)構(gòu)基本思路嘗試運行代碼處理可能發(fā)生的錯誤在實際使用時,可以根據(jù)需要來選擇使用哪一種異常處理結(jié)構(gòu)舉例——python異常處理結(jié)構(gòu)中最基本的結(jié)構(gòu)try...except...程序的執(zhí)行流程執(zhí)行try子句(在try和except關(guān)鍵字之間的部分)沒有異常發(fā)生except子句在try語句執(zhí)行完畢后就被忽略異常處理結(jié)構(gòu)舉例如果異常匹配于except關(guān)鍵字后面指定的異常類型就執(zhí)行對應(yīng)的except子句,然后繼續(xù)執(zhí)行異常處理結(jié)構(gòu)之后的代碼try...except...如果在try子句執(zhí)行

過程中發(fā)生了異常該子句其余的部分就會被忽略異常處理結(jié)構(gòu)舉例異常匹配于except關(guān)鍵字后面指定的異常類型,就執(zhí)行對應(yīng)的except子句,然后繼續(xù)執(zhí)行異常處理結(jié)構(gòu)之后的代碼try...except...在try子句執(zhí)行過程中發(fā)生了異常該子句其余的部分就會被忽略異常處理結(jié)構(gòu)舉例最終仍找不到對應(yīng)的處理語句,它就成為一個未處理異常,終止程序運行,顯示提示信息try...except...發(fā)生了一個異常在except子句中沒有與之匹配的分支,它就會傳遞到上一級try語句中異常處理結(jié)構(gòu)舉例try...except...else...else代表try子句中的代碼沒有引發(fā)異常,則繼續(xù)執(zhí)行這里引發(fā)異常,這部分就不執(zhí)行異常處理結(jié)構(gòu)舉例else內(nèi)的“執(zhí)行完畢”就可以顯示出來當(dāng)程序出現(xiàn)異常后,就沒有顯示通過輸出結(jié)果看到當(dāng)程序無異常時異常處理結(jié)構(gòu)舉例try...except...finally...從功能上來說,有沒有finally子句,在try...except...結(jié)構(gòu)執(zhí)行完后,都會繼續(xù)執(zhí)行后面的語句,使用finally子句將使程序結(jié)構(gòu)更加清晰。finally中的代碼常用來做一些清理工作以釋放try子句中申請的資源。異常處理結(jié)構(gòu)舉例為了減少代碼量,python允許把多個異常類型放到一個元組中,然后使用一個except子句同時捕捉多種異常,并共用同一段異常處理代碼??偨Y(jié)對異常和錯誤的正確理解Python如何進(jìn)行異常處理重點:異常處理課堂導(dǎo)入滲透測試工作編寫滲透測試工具軟件編寫滲透測試工具軟件Socket網(wǎng)絡(luò)編程SocketnetworkprogrammingSocket的概念Socket的概念定義計算機之間基于TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信的一套程序接口(套接字),最初由加利福尼亞大學(xué)伯克利分校研發(fā),目前已經(jīng)成為網(wǎng)絡(luò)編程的標(biāo)準(zhǔn),可以實現(xiàn)跨平臺的數(shù)據(jù)傳輸。表示層應(yīng)用層傳輸層會話層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層物理層10100001111000110011000(比特流)AH數(shù)據(jù)數(shù)據(jù)PH數(shù)據(jù)SH數(shù)據(jù)TH數(shù)據(jù)NH數(shù)據(jù)DHDH表示層應(yīng)用層傳輸層會話層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層物理層數(shù)據(jù)發(fā)送進(jìn)程接收進(jìn)程Socket的概念Socket的概念通信協(xié)議SocketSocket復(fù)雜

調(diào)用協(xié)議棧中的協(xié)議進(jìn)行通信方便統(tǒng)一的接口(Socket接口)去調(diào)用Socket的概念Socket套接字:應(yīng)用層與TCP/IP協(xié)議簇通信的中間軟件抽象層是一組接口把復(fù)雜的TCP/IP協(xié)議簇隱藏在Socket接口后面Socket的概念Socket接口網(wǎng)絡(luò)通信組織數(shù)據(jù)調(diào)用符合指定的協(xié)議基于TCP的Socket通信模型基于UDP的Socket通信模型bind()listen()accept()recv()send()close()Socket()connect()send()recv()close()創(chuàng)建Socket接口監(jiān)聽客戶端的連接綁定IP和端口接受客戶端的連接接收客戶端的數(shù)據(jù)向客戶端發(fā)送數(shù)據(jù)關(guān)閉Socket接口向服務(wù)端請求連接向服務(wù)端發(fā)送數(shù)據(jù)接收服務(wù)端的數(shù)據(jù)關(guān)閉Socket接口Socket()創(chuàng)建Socket接口服務(wù)端客戶端基于TCP的Socket通信模型Python中如何調(diào)用Socket套接字socket基于TCP的Socket網(wǎng)絡(luò)編程socket.SOCK_STREAM:使用TCP協(xié)議創(chuàng)建Socket對象服務(wù)端用到的Socket模塊方法socket.AF_INET:使用IPv4協(xié)議(socket.AF_INET6:使用IPv6協(xié)議)server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server:返回一個Socket對象基于TCP的Socket網(wǎng)絡(luò)編程bind_port:綁定的端口號綁定IP地址和端口號服務(wù)端用到的Socket模塊方法bind_ip:綁定的IP地址server.bind((bind_ip,bind_port))這兩個參數(shù)以一個元組的形式出現(xiàn)server.listen(client_num)綁定IP地址和端口號client_num:能夠接收的客戶端連接數(shù)基于TCP的Socket網(wǎng)絡(luò)編程conn:一個新的socket對象,用來接收和發(fā)送數(shù)據(jù)接受客戶端的連接請求服務(wù)端用到的Socket模塊方法conn,addr=server.accept()addr:客戶端的IP地址和端口號基于TCP的Socket網(wǎng)絡(luò)編程接收到的數(shù)據(jù)data是bytes類型,需要使用data.decode()轉(zhuǎn)換成字符串才能正常讀取接收數(shù)據(jù)服務(wù)端用到的Socket模塊方法bufsize:一次能夠接收的數(shù)據(jù)塊大小data=conn.recv(bufsize)基于TCP的Socket網(wǎng)絡(luò)編程發(fā)送數(shù)據(jù)服務(wù)端用到的Socket模塊方法返回值是發(fā)送字節(jié)的數(shù)量,可能未全部發(fā)送指定的內(nèi)容conn.send(data)conn.sendall(data)嘗試發(fā)送所有數(shù)據(jù),成功返回None,失敗拋出異常注意:發(fā)送數(shù)據(jù)data需要是bytes類型,因此如果原始數(shù)據(jù)是string類型,需要使用data.encode()轉(zhuǎn)換成bytes類型才能正確發(fā)送要發(fā)送的信息關(guān)閉連接服務(wù)端用到的Socket模塊方法關(guān)閉此發(fā)送接收數(shù)據(jù)的接口conn.close()server.close()關(guān)閉此次連接接口基于TCP的Socket網(wǎng)絡(luò)編程基于TCP的Socket網(wǎng)絡(luò)編程target_port:服務(wù)端口號客戶端用到的Socket模塊中的socket、send、recv方法與服務(wù)端相同。不同的是連接服務(wù)端connect方法target_ip:服務(wù)器的IP地址client.connect((target_ip,target_port))這兩個參數(shù)以一個元組的形式給出Socket模塊SocketSendrecvSocket()bind()listen()accept()recv()send()close()Socket()connect()send()recv()close()創(chuàng)建Socket接口監(jiān)聽客戶端的連接綁定IP和端口接受客戶端的連接顯示客戶端的地址信息顯示客戶端發(fā)送的信息關(guān)閉Socket接口提示用戶輸入信息向服務(wù)端發(fā)送信息接收服務(wù)端的信息關(guān)閉Socket接口Ok,Ihavereceivedprint(addr)print(data)接收客戶端的信息向客戶端發(fā)送信息print()input()創(chuàng)建Socket接口向服務(wù)器請求連接顯示服務(wù)端的信息Hello,server!服務(wù)端Socket網(wǎng)絡(luò)編程實例客戶端多線程Multithreading課堂導(dǎo)入進(jìn)程是程序的一次執(zhí)行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨立單位電腦中有很多單獨運行的程序,每個程序有一個獨立的進(jìn)程,而進(jìn)程之間是相互獨立存在的課堂導(dǎo)入要想使進(jìn)程中的代碼真正運行起來,必須擁有至少一個能夠在這個環(huán)境中運行代碼的執(zhí)行單元進(jìn)程是“懶惰”的,本身并不是可執(zhí)行單元,從來不執(zhí)行任何任務(wù)線程課堂導(dǎo)入進(jìn)程的一部分進(jìn)程的實際運作單位操作系統(tǒng)中最小運算調(diào)度單位課程目標(biāo)掌握多線程的核心概念及含義實現(xiàn)多線程的模塊和方法知識目標(biāo)學(xué)會運用多線程的邏輯思維解決問題使用標(biāo)準(zhǔn)庫threading創(chuàng)建和管理線程對象能力目標(biāo)多線程的基本概念多線程的基本概念進(jìn)程主線程線程1線程2線程3線程4標(biāo)準(zhǔn)庫threading是python支持多線程編程的重要模塊多線程的創(chuàng)建和管理多線程的創(chuàng)建和管理繼續(xù)Thread類并在派生類中重寫__init__()和run()方法兩種方式創(chuàng)建線程標(biāo)準(zhǔn)庫threading創(chuàng)建了線程對象以后,可以調(diào)用其start()方法來啟動,該方法自動調(diào)用該類對象的run()方法,此時該線程處于alive狀態(tài),直到線程的run()方法結(jié)束運行直接使用Thread類實例化一個線程對象并傳遞一個可調(diào)用對象作為參數(shù)多線程的創(chuàng)建和管理Threading主要對象成員函數(shù)和變量__init__(self,group=None,target=None,name=None,args=(),kwargs=None,verbose=None)該線程要調(diào)用的函數(shù)多線程的創(chuàng)建和管理Threading主要對象成員函數(shù)和變量__init__(self,group=None,target=None,name=None,args=(),kwargs=None,verbose=None)該線

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論