第 5 回・第 35 題
多選題查看原回次 ↗下列選項中,執行後何者「會產生 ValueError」?(請選出所有正確答案)
A. float("3.5")
B. int("3.5")
C. int("3")
D. float("abc")
正確答案
B. int("3.5")
D. float("abc")
為什麼?
會出錯的是:int("3.5"), float("abc")。
第 2 頁。練習 Python 除錯與錯誤處理,從 10 回 ITS Python 模擬題庫整理 30 題相關題目。本頁可免費查看正確答案與文字解析,並回到原回次完整練習。
下列選項中,執行後何者「會產生 ValueError」?(請選出所有正確答案)
A. float("3.5")
B. int("3.5")
C. int("3")
D. float("abc")
B. int("3.5")
D. float("abc")
會出錯的是:int("3.5"), float("abc")。
請將左側項目與右側正確的說明配對:(除錯情境 ↔ 對應問題)
85分被判斷成優密碼一直問不停少算一次迴圈結果偏離預期但沒報錯A. elif順序錯誤
B. range邊界差一錯誤
C. 並非bug,屬於正常while迴圈行為
D. 可能誤用了相近的變數
1 → A:85分被判斷成優 → elif順序錯誤
2 → C:密碼一直問不停 → 並非bug,屬於正常while迴圈行為
3 → B:少算一次迴圈 → range邊界差一錯誤
4 → D:結果偏離預期但沒報錯 → 可能誤用了相近的變數
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「使用try/except/finally完整處理錯誤」
A.
try:
B.
print("執行完畢")
C.
x = int("10")
D.
finally:
E.
print("不能除以0")
F.
except ZeroDivisionError:
G.
print(10 / x)
A → C → G → F → E → D → B
try:
x = int("10")
print(10 / x)
except ZeroDivisionError:
print("不能除以0")
finally:
print("執行完畢")
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生錯誤」?(請選出所有正確答案)
A. int("12x")
B. 10%0
C. [1][0]
D. "a"-"b"
A. int("12x")
B. 10%0
D. "a"-"b"
會出錯的是:int("12x"), 10%0, "a"-"b"。
請將左側項目與右側正確的說明配對:(try/except關鍵字 ↔ 作用)
tryexceptfinallyraiseA. 不論是否出錯都會執行
B. 放可能出錯的程式碼
C. 出錯時要執行的處理
D. 主動拋出一個例外
1 → B:try → 放可能出錯的程式碼
2 → C:except → 出錯時要執行的處理
3 → A:finally → 不論是否出錯都會執行
4 → D:raise → 主動拋出一個例外
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「修正range邊界,讓迴圈執行滿10次」
A.
for i in range(1, 11):
B.
count = 0
C.
count += 1
D.
print(count)
B → A → C → D
count = 0
for i in range(1, 11):
count += 1
print(count)
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 TypeError」?(請選出所有正確答案)
A. "3"*2
B. "3"-2
C. 3-"2"
D. 3*"2"
B. "3"-2
C. 3-"2"
會出錯的是:"3"-2, 3-"2"。
請將左側項目與右側正確的說明配對:(錯誤訊息關鍵字 ↔ 對應錯誤)
division by zeroinvalid literal for int()list index out of rangeis not definedA. ZeroDivisionError
B. IndexError
C. ValueError
D. NameError
1 → A:division by zero → ZeroDivisionError
2 → C:invalid literal for int() → ValueError
3 → B:list index out of range → IndexError
4 → D:is not defined → NameError
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「用try/except處理字典取值可能發生的錯誤」
A.
print(d["b"])
B.
d = {"a": 1}
C.
print("鍵不存在")
D.
try:
E.
except KeyError:
B → D → A → E → C
d = {"a": 1}
try:
print(d["b"])
except KeyError:
print("鍵不存在")
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 KeyError」?(請選出所有正確答案)
A. {"x":1}["y"]
B. {"x":1}.get("y")
C. {"x":1}["x"]
A. {"x":1}["y"]
會出錯的是:{"x":1}["y"]。
請將左側項目與右側正確的說明配對:(除錯情境 ↔ 建議做法)
不確定變數目前的值程式邏輯錯誤但沒有報錯使用者輸入可能造成錯誤想避免程式因錯誤而中斷A. 用print()印出來確認
B. 加上except攔截例外
C. 逐行追蹤執行流程
D. 用try/except包起來
1 → A:不確定變數目前的值 → 用print()印出來確認
2 → C:程式邏輯錯誤但沒有報錯 → 逐行追蹤執行流程
3 → D:使用者輸入可能造成錯誤 → 用try/except包起來
4 → B:想避免程式因錯誤而中斷 → 加上except攔截例外
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「修正比較運算子方向錯誤,讓及格判斷正確」
A.
if score >= 60:
B.
else:
C.
print("及格")
D.
score = 75
E.
print("不及格")
D → A → C → B → E
score = 75
if score >= 60:
print("及格")
else:
print("不及格")
正確順序如上(由上到下)。