Python程序設計教程 習題及答案 習題11-習題解答_第1頁
Python程序設計教程 習題及答案 習題11-習題解答_第2頁
Python程序設計教程 習題及答案 習題11-習題解答_第3頁
Python程序設計教程 習題及答案 習題11-習題解答_第4頁
全文預覽已結束

下載本文檔

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

文檔簡介

習題11一、選擇題1.下列關于“錯誤(Error)”和“異常(Exception)”的說法正確的是()。A.錯誤與異常沒有區別B.異常通常可以被程序處理,而錯誤一般無法恢復C.異常是指語法錯誤D.錯誤是指運行中產生的小問題2.當需要捕獲多個異常類型時,應將多個異常放在()。A.一個except中的集合里,如except{ValueError,TypeError}B.多個except分支中C.一個except中用“and”連接D.一個try中嵌套多個try3.若需要讓程序無論是否發生異常都執行某段代碼,應使用()。A.try-except B.try-except-else C.try-finally D.raise4.用于獲取異常詳細信息(如錯誤提示文本)的寫法正確的是:A.exceptExceptionasmsg: B.exceptmsg:C.tryasmsg: D.raisemsg5.下列關于異常傳播機制的說法正確的是()。A.異常只會在當前函數內部查找except B.異常會沿著調用棧逐層向外傳播C.異常不會離開當前語句塊 D.捕獲異常后仍繼續向上傳播6.以下語句用于主動拋出異常的是()。A.throw B.raise C.except D.error二、編程題1.編寫程序,讓用戶輸入一個整數,使用try-except捕獲非整數輸入的異常,并提示“請輸入整數!”。2.編寫函數safe_div(a,b),使用try-except捕獲除零異常,并返回“除數不能為0”。3.編寫程序,捕獲用戶輸入列表索引非法(IndexError)的情況,并輸出提示信息。4.編寫函數,實現:接收一個列表,若列表中有非數字元素則主動使用raiseValueError拋出異常。5.定義一個自定義異常類PasswordError,在用戶輸入密碼過短(少于6位)時拋出該異常。6.綜合練習:編寫一個簡單計算器,支持+、-、*、/。要求對以下情況進行異常處理:輸入格式錯誤、不支持的運算符、除零錯誤,并給出友好的錯誤提示。一、選擇題答案+解析答案:B解析:語法錯誤屬于錯誤,程序無法運行;異常是運行時問題,可通過try-except捕獲處理。答案:B解析:捕獲多個異常可寫多個獨立except分支,或在一個except中用元組包裹異常類型,不能用集合、and。答案:C解析:finally塊無論是否觸發異常,一定會執行;else是無異常時執行。答案:A解析:標準寫法except異常類型as變量:,變量用于接收異常描述信息。答案:B解析:異常未被捕獲時,會沿著函數調用棧逐層向外傳播;一旦被捕獲,停止傳播。答案:B解析:Python使用raise主動拋出異常,無throw關鍵字。二、編程題(Python代碼)1.捕獲非整數輸入異常try:num=int(input("請輸入一個整數:"))print(f"你輸入的整數是:{num}")exceptValueError:print("請輸入整數!")2.安全除法,捕獲除零異常defsafe_div(a,b):try:returna/bexceptZeroDivisionError:return"除數不能為0"#測試print(safe_div(10,2))print(safe_div(8,0))3.捕獲列表索引越界異常lst=[10,20,30,40]try:idx=int(input("請輸入列表索引:"))print("對應元素:",lst[idx])exceptIndexError:print("索引非法,超出列表范圍!")exceptValueError:print("請輸入數字格式的索引!")4.列表含非數字元素則主動拋異常defcheck_num_list(lst):foriteminlst:#判斷是否為數字ifnotisinstance(item,(int,float)):raiseValueError("列表中存在非數字元素")print("列表全部為數字元素")#測試try:check_num_list([1,2.5,3])check_num_list([1,"a",3])exceptValueErrorase:print(e)5.自定義異常:密碼長度不足拋PasswordError#定義自定義異常類classPasswordError(Exception):passtry:pwd=input("請輸入密碼:")iflen(pwd)<6:raisePasswordError("密碼長度不能少于6位!")print("密碼格式合法")exceptPasswordErrorase:print(e)6.簡易計算器(綜合異常處理)defcalculator():try:num1=float(input("請輸入第一個數字:"))op=input("請輸入運算符(+、-、*、/):")num2=float(input("請輸入第二個數字:"))ifop=="+":res=num1+num2elifop=="-":res=num1-num2elifop=="*":res=num1*num2elifop=="/":res=num1/num2else:#運算符非法主動拋異常raiseException("不支持該運算符!")print(f"計算結果:{res}")exceptValueError:

溫馨提示

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

評論

0/150

提交評論