




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據處理辦法流程控制流程控制流程控制數據是被加工處理的原材料數據是被加工處理的原材料,而處理過程要用流而處理過程要用流程控制結構來描述程控制結構來描述類比類比:烹調烹調=食材食材+烹制過程烹制過程烹制過程烹制過程:先炒再煮先炒再煮;如果淡了則加鹽如果淡了則加鹽;反復翻炒反復翻炒5分分鐘鐘;.常見的流程控制結構常見的流程控制結構順序順序,跳轉跳轉,分支分支,循環循環,好的流程好的流程:結構清晰結構清晰,2 23 3 3順序控制結構順序控制結構按語句的自然先后順序執行按語句的自然先后順序執行4 4 4編程實例編程實例溫度轉換程序溫度轉換程序 :華氏轉換成攝氏華氏轉換成攝氏流程圖流程圖:用標準化的圖
2、形符號來表示程序步驟用標準化的圖形符號來表示程序步驟流程圖中的步驟可以是不同抽象級的流程圖中的步驟可以是不同抽象級的5 5 5分支控制結構分支控制結構(1)可以選擇不同的執行路徑可以選擇不同的執行路徑單分支結構單分支結構if : : 布爾表達式布爾表達式: 語句序列語句序列.左邊需要左邊需要縮進縮進一些空格一些空格.語義語義:計算計算的真假的真假.若為真若為真,則執行則執行,并把控制轉向下一條語句并把控制轉向下一條語句;若為假若為假,則直接則直接把控制轉向下一條語句把控制轉向下一條語句.數據處理辦法流程控制6布爾表達式布爾表達式(1)是一個布爾表達式是一個布爾表達式.結果為布爾值結果為布爾值T
3、rue或或False簡單布爾表達式簡單布爾表達式: 關系運算關系運算: , =, , !=數值比較數值比較字符串比較字符串比較: 按字典序按字典序.字符序由編碼字符序由編碼(ASCII等等)決定決定. 如如:大寫字母在小寫字母大寫字母在小寫字母前前.列表列表,元組的比較元組的比較6字符串比較舉例x = a Ax = a Ax = aA Aax = aa ax = a aax = a a aax = aa a a布爾表達式布爾表達式(2)復雜布爾表達式復雜布爾表達式:布爾運算布爾運算:and, or, not and or not 89 9and的定義的定義and表示表示“并且并且”: P an
4、d Q為真為真 iff P和和Q都為真都為真真值表見右真值表見右例例 (3 2) and (2 1)True (3 2) and (2 3)False PQP and QFFFFTFTFFTTTLu Chaojun, SJTU 1010or的定義的定義or表示表示“或者或者”: P or Q為假為假 iff P和和Q都為假都為假真值表見右真值表見右與日常用語中互斥的與日常用語中互斥的“或或”不同不同!例例 (3 2) or (3 (2 3) or (2 4)False PQP or QFFFFTTTFTTTT1111not的定義的定義not表示表示“否定否定”:not P為真為真 iff P為
5、假為假.真值表見右真值表見右例例 not 3 2False not not 3 2TruePnot PTFFT布爾運算符的優先級布爾運算符的優先級not最高最高, and次之次之, or最低最低Q: a or not b and c何意何意?A: a or (not b) and c)最好使用括號最好使用括號!12例例:一局乒乓球比賽的結束一局乒乓球比賽的結束雙方任何人先得雙方任何人先得11分分a = 11 or b = 11更準確的更準確的:一方至少要多一方至少要多2分才勝分才勝(a = 11 and a - b = 2) or (b = 11 and b - a = 2)或者寫成或者寫成(
6、a = 11 or b = 11) and abs(a - b) = 213數據處理辦法流程控制14編程實例編程實例溫度轉換程序溫度轉換程序增加熱浪告警功能增加熱浪告警功能f = input(Temperature in degrees Farenheit: )c = (f 32) * 5.0 / 9print Temperature in degrees Celsius:,cif c 35: print Warning: Heat Wave! 1414Lu Chaojun, SJTU 15Lu Chaojun, SJTU 1515編程實例編程實例溫度轉換程序溫度轉換程序增加熱浪和寒潮告警功能
7、增加熱浪和寒潮告警功能f = input(Temperature in degrees Farenheit: )c = (f 32) * 5.0 / 9print Temperature in degrees Celsius:,cif c = 35: print Warning: Heat Wave!if c = -6: print Warning: Cold Wave! 數據處理辦法流程控制16兩路分支結構兩路分支結構語法語法if : else: if和和else是非此即彼的關系是非此即彼的關系.下列語句對嗎下列語句對嗎?if c = 35: print Warning: Heat Wave
8、!else: print Warning: Cold Wave! 數據處理辦法流程控制17多路分支多路分支:嵌套嵌套if-elseif語句可以嵌套語句可以嵌套多重嵌套不好多重嵌套不好難讀難讀代碼松散代碼松散if c = 35: print Warning: Heat Wave!else: if c = -6: print Warning: Cold Wave! else: print Have fun!多路分支多路分支:if-elif-else結構結構語法語法if : elif : .elif else 語義語義:找到第一個為真的條件并執行對應語句找到第一個為真的條件并執行對應語句序列序列,控
9、制轉向下一條語句控制轉向下一條語句;若無若無,則執行則執行else下下的語句序列的語句序列,控制轉向下一條語句控制轉向下一條語句.18數據處理辦法流程控制19編程實例編程實例溫度轉換程序溫度轉換程序f = input(Temperature in degrees Farenheit: )c = (f - 32) * 5.0 / 9print Temperature in degrees Celsius:, cif c = 35: print Warning: Heat Wave!elif c = 0: discRoot = math.sqrt(discrim) root1 = (-b + di
10、scRoot) / (2 * a) root2 = (-b - discRoot) / (2 * a) print The solutions are:, root1, root2else: print The equation has no real roots! 23數據處理辦法流程控制24提高健壯性提高健壯性:利用函數返回碼利用函數返回碼函數中有檢測代碼函數中有檢測代碼,執行正常與否可利用返回值執行正常與否可利用返回值作為標志碼作為標志碼.調用者無條件調用函數調用者無條件調用函數,并檢測返回值并檢測返回值.例如例如,為了解決為了解決sqrt函數的問題函數的問題,設計設計robustSqr
11、t():def robustSqrt(x): if x 0: return -1 else: return math.sqrt(x)則程序中可以這樣檢測則程序中可以這樣檢測if robustSqrt(b*b 4*a*c) a = Hello print a5Traceback (most recent call last): File , line 1, in IndexError: string index out of range 程序員自定義異常處理程序員自定義異常處理 Python提供提供try-except語句語句,可用來自定義異常處理代碼可用來自定義異常處理代碼. a = Hell
12、o try: print a5 except IndexError: print Index wrong!Index wrong! Lu Chaojun, SJTU 28異常處理機制的優點異常處理機制的優點既保持核心算法的清晰既保持核心算法的清晰,又能提高程序的健壯性又能提高程序的健壯性.29算法清晰算法清晰但不健壯但不健壯:doStep1()doStep2()doStep3()健壯但算法不清晰健壯但算法不清晰:if doStep1() = ERROR: 錯誤處理代碼錯誤處理代碼1elif doStep2() = ERROR: 錯誤處理代碼錯誤處理代碼2elif doStep3() = ERROR: 錯誤處理代碼錯誤處理代碼3 算法清晰且健壯算法清晰且健壯:try: doStep1() doStep2() doStep3()except ERROR: 錯誤處理代碼錯誤處理代碼編程實例編程實例解方程程序的改進解方程程序的改進:用異常處理語句來捕獲的溢用異常處理語句來捕獲的溢出錯誤出錯誤.(eg3_7.py)import mathtry: a, b, c = input(Enter (a, b, c): ) discRoot = math
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長春汽車考試試題及答案
- 北京林業大學考試試題及答案
- 航空設備考試試題及答案
- 煙臺導游考試試題及答案
- 2025建筑外墻涂料工程合同協議書范文
- 個人買賣叉車合同范例
- 德語專四考試試題及答案
- 外貿函電課件整合完整版
- 福建省三明市2025屆高三三??荚囌Z文試題(含答案)
- 中標違約合同范例
- 河南省“極飛杯”無人機應用技術技能大賽-無人機植保應用-技術文件
- 2024年上海市交大附中高三語文期中考試作文題目解析及范文:松弛感
- 【碳足跡報告】新鄉市錦源化工對位脂產品碳足跡報告
- 部編版歷史九年級上冊第1課-古代埃及【課件】a
- 盾構法施工畢業設計論文
- 2015-2024北京中考真題語文匯編:文言文閱讀
- 食品安全責任保險投保單
- 六年級下冊科學知識點(浙教版新)
- 室內批灰合同模板
- 舞臺人生:走進戲劇藝術學習通超星期末考試答案章節答案2024年
- 2023年遼寧營口中考滿分作文《你是我成長中的榜樣》
評論
0/150
提交評論