ppt2-2 python編程基礎知識--程序控制結構_第1頁
ppt2-2 python編程基礎知識--程序控制結構_第2頁
ppt2-2 python編程基礎知識--程序控制結構_第3頁
ppt2-2 python編程基礎知識--程序控制結構_第4頁
ppt2-2 python編程基礎知識--程序控制結構_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、程序的控制結構,程序的基本結構,程序的基本結構,順序結構是程序的基礎,但單一的順序結構不可能解決 所有問題。 程序由三種基本結構組成: 順序結構 分支結構 循環(huán)結構 這些基本結構都有一個入口和一個出口。任何程序都由 這三種基本結構組合而成,程序的基本結構,順序結構是程序按照線性順序依次執(zhí)行的一種運行方式,其 中語句塊1S1和語句塊S2表示一個或一組順序執(zhí)行的語句,程序的基本結構,分支結構是程序根據(jù)條件判斷結果而選擇不同向前執(zhí)行路徑的 一種運行方式,包括單分支結構和二分支結構。由二分支結構 會組合形成多分支結構,程序的基本結構,循環(huán)結構是程序根據(jù)條件判斷結果向后反復執(zhí)行的一種運 行方式,根據(jù)循環(huán)

2、體觸發(fā)條件不同,包括條件循環(huán)和遍歷 循環(huán)結構,程序的基本結構實例,對于一個計算問題,可以用IPO描述、流程圖描述或者直接以 Python代碼方式描述 微實例4.1:圓面積和周長的計算。 輸入:圓半徑R 處理: 圓面積:S = *R*R 圓周長:L = 2*R 輸出:圓面積S、周長L,問題IPO描述,Python代碼描述,程序的基本結構實例,微實例4.2:實數(shù)絕對值的計算。,(a) 問題IPO描述,(b) 流程圖描述,(c) Python代碼描述,程序的基本結構實例,微實例4.3:整數(shù)累加。,輸入:正整數(shù)R 處理: S=1+2+3+R 輸出:輸出S,(a) 問題IPO描述,(b) 流程圖描述,(

3、c) Python代碼描述,程序的分支結構,單分支結構: if語句,Python中if語句的語法格式如下: if : 語句塊 語句塊中語句通過與if所在行形成縮進表達包含關系 if語句首先評估的結果值,如果結果為True,則 執(zhí)行語句塊里的語句序列。如果結果為False,語句塊里的語句會被跳過。,單分支結構: if語句,if語中部分可以使用任何能夠產(chǎn)生True或False的語句 形成判斷條件最常見的方式是采用關系操作符 Python語言共有6個關系操作符,if語中部分可以使用任何能夠產(chǎn)生True或False的語句 算術運算符:+、-、*、/、/、%、* 關系運算符:、=、!=,可以連續(xù)使用 1

4、 13 False 測試運算符:in、not in、is、is not 邏輯運算符:and、or、not,注意短路求值 位運算符:、&、|、 、 矩陣乘法運算符:,單分支結構: if語句,在選擇和循環(huán)結構中,條件表達式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元組、空集合、空字典、空字符串、空range對象或其他空迭代對象,Python解釋器均認為與True等價,單分支結構: if語句, if 3: #使用整數(shù)作為條件表達式 print(5) 5 a = 1, 2, 3 if a: #使用列表作為條件表達式 print(a) 1, 2, 3 a = if a: p

5、rint(a) else: print(empty) empty,單分支結構: if語句,微實例4.4:PM 2.5空氣質量提醒(1) 輸入:接收外部輸入PM2.5值 處理: if PM2.5值 = 75,打印空氣污染警告 if 35 = PM2.5值 請輸入身高(米)和體重(公 斤)逗號隔開: 1.75, 75 BMI數(shù)值為:24.49 BMI指標為:國際正常, 國內 偏胖,程序的循環(huán)結構,遍歷循環(huán): for語句,遍歷循環(huán): 根據(jù)循環(huán)執(zhí)行次數(shù)的確定性,循環(huán)可以分為確定次數(shù)循 環(huán)和非確定次數(shù)循環(huán)。確定次數(shù)循環(huán)指循環(huán)體對循環(huán)次數(shù) 有明確的定義循環(huán)次數(shù)采用遍歷結構中元素個數(shù)來體現(xiàn) Python通過

6、保留字for實現(xiàn)“遍歷循環(huán)” : for in : ,遍歷循環(huán): for語句,遍歷結構可以是字符串、文件、組合數(shù)據(jù)類型或range()函數(shù):,遍歷循環(huán)還有一種擴展模式,使用方法如下: for in : else: ,遍歷循環(huán): for語句,當for循環(huán)正常執(zhí)行之后,程 序會繼續(xù)執(zhí)行else語句中內容 。else語句只在循環(huán)正常執(zhí)行 之后才執(zhí)行并結束, 因此,可以在中放 置判斷循環(huán)執(zhí)行情況的語句。, 循環(huán)進行中: B 循環(huán)進行中: I 循環(huán)進行中: T 循環(huán)正常結束,無限循環(huán): while語句,無限循環(huán): 無限循環(huán)一直保持循環(huán)操作直到特定循環(huán)條件不被滿足才 結束,不需要提前知道確定循環(huán)次數(shù)。 P

7、ython通過保留字while實現(xiàn)無限循環(huán),使用方法如下: while : 語句塊,無限循環(huán): while語句,無限循環(huán)也有一種使用保留字else的擴展模式: while : else: , 循環(huán)進行中: B 循環(huán)進行中: I 循環(huán)進行中: T 循環(huán)正常結束,循環(huán)保留字: break和continue,循環(huán)結構有兩個輔助保留字:break和continue,它們用來 輔助控制循環(huán)執(zhí)行 break用來跳出最內層for或while循環(huán),脫離該循環(huán)后程序從 循環(huán)后代嗎繼續(xù)續(xù)執(zhí)行, BBBBBBBBBBITTTTTTTTTT,其中,break語句跳出了 最內層for循環(huán),但仍然 繼續(xù)執(zhí)行外層循環(huán)。每個

8、 break語句只有能力跳出 當前層次循環(huán),循環(huán)保留字: break和continue,continue用來結束當前當次循環(huán),即跳出循環(huán)體中下面尚 未執(zhí)行的語句,但不跳出當前循環(huán)。 對比continue和break語句,如下, PYHON, PY,continue語句只結束本次循環(huán),而不終止整個循環(huán)的執(zhí)行。 break語句則是結束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件,循環(huán)保留字: break和continue,for循環(huán)和while循環(huán)中都存在一個else擴展用法。 else中的語句塊只在一種條件下執(zhí)行,即for循環(huán)正常遍歷了 所有內容沒有因為break或return而退出。 continue

9、保留字對else沒有影響。看下面兩個例子, PYHON正常退出, PY,小練習:求能同時被7和5整除的數(shù)字,求1100之間能被7整除,但不能同時被5整除的所有整數(shù) 。,for i in range(1,101): if i % 7 = 0 and i % 5 != 0: print(i),小練習:改進turtle畫圖程序,要求允許用戶輸入繪制多邊形的邊數(shù),然后開始繪圖。 當用戶輸入小于3的數(shù)字時,程序退出,否則程序持續(xù)運行。,random庫的使用,random庫概述,隨機數(shù)在計算機應用中十分常見,Python內置的random庫 主要用于產(chǎn)生各種分布的偽隨機數(shù)序列。random庫采用梅 森旋轉

10、算法(Mersenne twister)生成偽隨機數(shù)序列,可用 于除隨機性要求更高的加解密算法外的大多數(shù)工程應用。 使用random庫主要目的是生成隨機數(shù),這個庫提供了不同類型的隨機數(shù)函數(shù),所有函數(shù)都是基于random.random() 函數(shù)擴展而來。,random庫解析,random庫解析,對random庫的引用方法與 math庫一樣,采用下面兩種 方式實現(xiàn): import random 或 from random import *,from random import * random() 0.2922089114412476 uniform(1,10) 1.591308278359852

11、4 uniform(1,20) 7 randrange(0,100,4) #從0開始到100以4遞增的 元素中隨機返回 96 choice(range(100) 97 ls = list(range(10) print(ls) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 shuffle(ls) print(ls) 5,8,4,7,6,9,3,0,2,10, 1, 2, 3, 4, 5, 6, 7, 8, 9,random庫解析,生成隨機數(shù)之前可以通過seed()函數(shù)指定隨機數(shù)種子,隨機 種子一般是一個整數(shù),只要種子相同,每次生成的隨機數(shù)序 列也相同。這種情況便于測試和同步數(shù)據(jù),s

12、eed(125) # 隨機種子賦值125 .format(randint(1,10),randint(1,10),randint(1,10) 4.4.10 .format(randint(1,10),randint(1,10),randint(1,10) 5.10.3 seed(125) # 再次給隨機種子賦值125 .format(randint(1,10),randint(1,10),randint(1,10) 4.4.10,小練習:編程實現(xiàn)冒泡排序,編寫代碼實現(xiàn)冒泡法排序。,from random import randint lst = randint(1, 100) for i in

13、 range(20) print(Before sort:n, lst) length = len(lst) for i in range(0, length): for j in range(0, length-i-1): #比較相鄰兩個元素大小,并根據(jù)需要進行交換 if lstj lstj+1: lstj, lstj+1 = lstj+1, lstj print(After sort:n, lst),可以用lst.sort()來代替,的計算,的計算,(圓周率)是一個無理數(shù),即無限不循環(huán)小數(shù)。精確求 解圓周率是幾何學、物理學和很多工程學科的關鍵。 對的精確求解曾經(jīng)是數(shù)學歷史上一直難以解決的問

14、題之 一,因為無法用任何精確公式表示,在電子計算機出現(xiàn) 以前,只能通過一些近似公式的求解得到,直到1948年 ,人類才以人工計算方式得到的808位精確小數(shù)。,的計算,隨著計算機的出現(xiàn),數(shù)學家找到了另類求解的另類 方法:蒙特卡羅(Monte Carlo)方法,又稱隨機抽樣或統(tǒng) 計試驗方法。 應用蒙特卡羅方法求解的基本步驟如下: 隨機向單位正方形和圓結構,拋灑大量“飛鏢”點 計算每個點到圓心的距離從而判斷該點在圓內或者圓外 用圓內的點數(shù)除以總點數(shù)就是/4值。 隨機點數(shù)量越大,計算得到的值越精 確。 實際上,這個方法的思想是利用離散點值表示圖形的面 積,通過面積比例來求解值。,的計算,計算使用的正方

15、形和圓結構,計算使用的1/4區(qū)域和拋點過程,的計算, Pi值是3.144. 運行時間是: 0.016477s,的計算,不同拋點數(shù)產(chǎn)生的精度和運行時間,小練習:,異常處理機制,異常處理: try-except語句,觀察下面這段小程序:,當用戶輸入的不是數(shù)字呢?, 請輸入一個整數(shù): 100 10000 請輸入一個整數(shù): NO Traceback (most recent call last): File D:/PythonPL/echoInt.py, line 1, in num = eval(input(請輸入一個整數(shù): ) File , line 1, in NameError: name N

16、o is not defined,異常處理: try-except語句,Python解釋器返回了異常信息,同時程序退出,異常處理: try-except語句,Python異常信息中最重要的部分是異常類型,它表明了發(fā) 生異常的原因,也是程序處理異常的依據(jù)。 Python使用try-except語句實現(xiàn)異常處理,基本的語法格 式如下: try: except : ,異常處理: try-except語句,該程序執(zhí)行效果如下:, 請輸入一個整數(shù): NO 輸入錯誤,請輸入一個整數(shù)!,異常的高級用法,try-except語句可以支持多個except語句,語法格式如下: try: except : . except : except: ,異常的高級用法,最后一個except語句沒有指定任何類型,表示它對應的語 句塊可以處理所有其他異常。這個過程與if-elif-else語句 類似,是分支結構的一種表達方式,一段代碼如下,異常的高級用法,該程序將用戶輸入的數(shù)字作為索引從字符串a(chǎn)lp中返回一個 字符,當用戶輸入非整數(shù)字符時,except NameError異常 被捕獲到,提示升用戶輸入類型錯誤,當用戶輸入數(shù)字不在 01到256之間時,異常被except捕獲,程序打印其他錯誤 信息,執(zhí)行過程和結果如 下:, 請輸

溫馨提示

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

最新文檔

評論

0/150

提交評論