Python編程基礎與應用 第2版 課件 第3章結構化程序設計;第4章函數模塊與類_第1頁
Python編程基礎與應用 第2版 課件 第3章結構化程序設計;第4章函數模塊與類_第2頁
Python編程基礎與應用 第2版 課件 第3章結構化程序設計;第4章函數模塊與類_第3頁
Python編程基礎與應用 第2版 課件 第3章結構化程序設計;第4章函數模塊與類_第4頁
Python編程基礎與應用 第2版 課件 第3章結構化程序設計;第4章函數模塊與類_第5頁
已閱讀5頁,還剩131頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1

結構化程序設計3.1結構化程序設計程序設計與算法一般說來,程序設計包括以下步驟:①問題定義;②算法設計;③算法表示(如流程圖設計);④程序編制;⑤程序調試、測試及資料編制。23.1結構化程序設計程序設計與算法33.1結構化程序設計流程圖表示方式43.1結構化程序設計結構化程序設計的基本要點53.1結構化程序設計結構化程序設計的基本要點63.1結構化程序設計結構化程序設計的基本要點三種基本結構的共同特點是:1)只有單一的入口和單一的出口;2)結構中的每個部分都有執行到的可能;3)結構內不存在永不終止的死循環。因此,結構化程序設計的基本思想是采用“自頂向下,逐步求精”的程序設計方法和“單入口單出口”的控制結構。73.2選擇結構if語句的形式83.2選擇結構if語句的形式93.2選擇結構if語句的形式103.2選擇結構if語句的形式113.2選擇結構if語句的形式123.2選擇結構if語句的嵌套133.2選擇結構if語句實例143.2選擇結構if語句實例153.2選擇結構if語句實例163.2選擇結構assert斷言函數及用法173.2選擇結構assert實例183.3循環結構while循環語句193.3循環結構while循環語句203.3循環結構while循環語句213.3循環結構for循環語句223.3循環結構for循環語句233.3循環結構for循環語句243.3循環結構for循環語句253.3循環結構范圍及for循環控制263.3循環結構范圍及for循環控制273.3循環結構范圍及for循環控制283.3循環結構循環嵌套293.3循環結構循環嵌套303.3循環結構循環嵌套313.3循環結構循環嵌套323.3循環結構循環控制語句1.break語句break語句,在語句塊執行過程中終止當前循環,并且跳出當前循環。break語句可以立即終止當前循環的執行,跳出當前所在的循環結構。無論是while循環還是for循環,只要執行break語句,就會直接結束當前正在執行的循環體。break語句的語法非常簡單,只需要在相應while或for語句中直接加入即可,一般會結合if語句進行搭配使用,表示在某種條件下跳出循環體。333.3循環結構循環控制語句343.3循環結構循環控制語句353.3循環結構循環控制語句2.continue語句continue語句執行過程中終止當前循環,跳出該次循環,執行下一次循環。和break語句相比,continue語句的作用沒有那么強大,它只會終止執行本次循環中剩下的代碼,直接從下一次循環繼續執行。continue語句的用法和break語句一樣,只要while或for語句中的相應位置加入即可。363.3循環結構循環控制語句373.3循環結構循環控制語句2.continue語句continue語句執行過程中終止當前循環,跳出該次循環,執行下一次循環。和break語句相比,continue語句的作用沒有那么強大,它只會終止執行本次循環中剩下的代碼,直接從下一次循環繼續執行。continue語句的用法和break語句一樣,只要while或for語句中的相應位置加入即可。383.3循環結構循環控制語句3.pass語句pass是空語句,只是起到保持程序結構的完整性作用。393.3循環結構循環控制語句403.4采用選擇與循環實現序列操作序列推導式1.列表推導式使用[]生成list的基本格式為:variable=[out_exp_resforout_expininput_listifout_exp==2]其中out_exp_res為列表生成元素表達式,可以是有返回值的函數;forout_expininput_list為迭代input_list將out_exp傳入out_exp_res表達式中;ifout_exp==2為根據條件過濾哪些值。413.4采用選擇與循環實現序列操作序列推導式423.4采用選擇與循環實現序列操作序列推導式2.字典推導式字典推導和列表推導的使用方法是類似的,需要將中括號改成大括號。433.4采用選擇與循環實現序列操作序列推導式443.4采用選擇與循環實現序列操作序列推導式453.4采用選擇與循環實現序列操作序列推導式3.集合推導式它們跟列表推導式也是類似的,唯一的區別在于它使用大括號{}。463.4采用選擇與循環實現序列操作序列推導式473.4采用選擇與循環實現序列操作zip函數及用法zip()函數是Python內置函數之一,它可以將多個序列(列表、元組、字典、集合、字符串以及range()區間構成的列表)“壓縮”成一個zip對象。所謂“壓縮”,其實就是將這些序列中對應位置的元素重新組合,生成一個個新的元組。zip()函數的語法格式為:zip(iterable,...)其中iterable,...表示多個列表、元組、字典、集合、字符串,甚至還可以為range()區間。483.4采用選擇與循環實現序列操作zip函數及用法493.4采用選擇與循環實現序列操作reversed函數及用法reserved()是Pyton內置函數之一,其功能是對于給定的序列(包括列表、元組、字符串以及range(n)區間),該函數可以返回一個逆序序列的迭代器(用于遍歷該逆序序列)。reserved()函數的語法格式如下:reversed(seq)其中,seq可以是列表、元素、字符串以及range()生成的區間列表。503.4采用選擇與循環實現序列操作reversed函數及用法513.4采用選擇與循環實現序列操作sorted函數及用法sorted()作為Python內置函數之一,其功能是對序列(列表、元組、字典、集合、還包括字符串)進行排序。sorted()函數的基本語法格式如下:list=sorted(iterable,key=None,reverse=False)sorted()函數會返回一個排好序的列表。其中,iterable表示指定的序列,key參數可以自定義排序規則;reverse參數指定以升序(False,默認)還是降序(True)進行排序;key參數和reverse參數是可選參數,即可以使用,也可以忽略。523.4采用選擇與循環實現序列操作sorted函數及用法533.5綜合案例解析1.編寫計算班級學生平均分程序543.5綜合案例解析1.編寫計算班級學生平均分程序553.5綜合案例解析2.編寫判讀是否素數的程序5657

函數、模塊與類4.1函數的定義函數定義規則1)函數代碼塊以def關鍵詞開頭,后接函數標識符名稱和圓括號()。2)任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。3)函數的第一行語句可以選擇性地使用文檔字符串,用于存放函數說明。4)函數內容以冒號起始,并且統一縮進。584.1函數的定義函數定義規則594.1函數的定義函數定義規則604.1函數的定義614.1函數的定義函數的形式參數和實際參數(1)形式參數:在定義函數時,函數名后面括號中的參數就是形式參數,例如:#定義函數時,這里的函數參數obj就是形式參數defdemo(obj):print(obj)624.1函數的定義函數的形式參數和實際參數(2)實際參數:在調用函數時,函數名后面括號中的參數稱為實際參數,也就是函數的調用者給函數的參數。例如:a="Python學習小組"#調用已經定義好的demo函數,此時傳入的函數參數a就是實際參數demo(a)634.1函數的定義函數的形式參數和實際參數根據實際參數的類型不同,函數參數的傳遞方式可分為2種,分別為值傳遞和引用(地址)傳遞:(1)值傳遞:適用于實參類型為不可變類型(字符串、數字、元組);(2)引用(地址)傳遞:適用于實參類型為可變類型(列表,字典)。644.1函數的定義函數的形式參數和實際參數654.1函數的定義函數的形式參數和實際參數664.1函數的定義值傳遞機制674.1函數的定義值傳遞機制684.1函數的定義引用傳遞機制694.1函數的定義引用傳遞機制704.1函數的定義函數的關鍵字參數714.1函數的定義函數的默認值參數724.1函數的定義函數的默認值參數734.1函數的定義函數的默認值參數744.1函數的定義None返回值常量None(N必須大寫)。和False不同,它不表示0,也不表示空字符串,而表示“沒有值”,也就是空值。這里的空值并不代表空對象,即None和[]、“”不同。None有自己的數據類型,可以在使用type()函數查看它的類型,屬于NoneType類型。None常用于assert、判斷以及函數無返回值的情況。比如使用print()函數輸出數據,其實該函數的返回值就是None。因為它的功能是在屏幕上顯示文本,根本不需要返回任何值,所以print()就返回None。對于所有沒有return語句的函數定義,Python都會在末尾加上returnNone,使用不帶值的return語句(也就是只有return關鍵字本身),那么就返回None。754.1函數的定義None返回值764.1函數的定義局部變量在函數內部定義的變量,它的作用域也僅限于函數內部,出了函數就不能使用了,將這樣的變量稱為局部變量(LocalVariable)。當函數被執行時,Python會為其分配一塊臨時的存儲空間,所有在函數內部定義的變量,都會存儲在這塊空間中。而在函數執行完畢后,這塊臨時存儲空間隨即會被釋放并回收,該空間中存儲的變量自然也就無法再被使用。774.1函數的定義局部變量784.1函數的定義全局變量794.1函數的定義全局變量804.1函數的定義為函數提供說明文檔814.2函數的高級應用匿名函數lambda表達式824.2函數的高級應用匿名函數lambda表達式834.2函數的高級應用閉包函數844.2函數的高級應用遞歸函數(1)必須有一個明確的結束條件。(2)每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少。(3)相鄰兩次重復之間有緊密的聯系,前一次要為后一次做準備(通常前一次的輸出就作為后一次的輸入)。(4)遞歸效率不高,遞歸層次過多會導致棧溢出,因為函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出。854.2函數的高級應用遞歸函數864.2函數的高級應用遞歸函數874.2函數的高級應用遞歸函數884.3類與對象對象的引入894.3類與對象對象的引入904.3類與對象對象的常用術語914.3類與對象類的定義924.3類與對象類和對象的關系934.3類與對象類的構造方法944.3類與對象類的構造方法954.3類與對象類的構造方法964.3類與對象類的構造方法974.3類與對象類的構造方法984.3類與對象類的構造方法994.3類與對象property()函數和@property裝飾器1004.3類與對象property()函數和@property裝飾器1014.3類與對象property()函數和@property裝飾器1024.3類與對象property()函數和@property裝飾器1034.3類與對象property()函數和@property裝飾器1044.3類與對象property()函數和@property裝飾器1054.4類的封裝與繼承封裝1064.4類的封裝與繼承封裝1074.4類的封裝與繼承封裝1084.4類的封裝與繼承繼承1094.4類的封裝與繼承繼承1104.4類的封裝與繼承繼承1114.4類的封裝與繼承多態1124.4類的封裝與繼承多態1134.5模塊與庫使用import來導入模塊的語法格式1144.5模塊與庫使用import來導入模塊的語法格式1154.5模塊與庫1164.5模塊與庫1174.5模塊與庫1184.5模塊與庫datetime模塊1194.5模塊與庫datetime模塊1204.5模塊與庫datetime模塊1214.5模塊與庫datetime模塊1224.5模塊與庫datetime模塊1234.5模塊與庫datetime模塊1244.5模塊與庫time模塊 time.localtime([secs]):將一個時間戳轉換為當前時區的struct_time。secs參數未提供,則以當前時間為準。 time.gmtime([secs]):和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time。 time.time():返回當前時間的時間戳。 time.mktime(t):將一個struct_time轉化為時間戳。 time.sleep(secs):線程推遲指定的時間運行。單位為秒。 time.asctime([t]):把一個表示時間的元組或者struct_time表示為這種形式:'Sun

Oct

18

2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論