第 1 回・第 35 題
多選題查看原回次 ↗下列選項中,執行後何者「會產生錯誤」?(請選出所有正確答案)
A. int("abc")
B. 10/0
C. 10//3
D. [1,2][5]
正確答案
A. int("abc")
B. 10/0
D. [1,2][5]
為什麼?
會出錯的是:int("abc"), 10/0, [1,2][5]。
練習 Python 除錯與錯誤處理,從 10 回 ITS Python 模擬題庫整理 30 題相關題目。本頁可免費查看正確答案與文字解析,並回到原回次完整練習。
下列選項中,執行後何者「會產生錯誤」?(請選出所有正確答案)
A. int("abc")
B. 10/0
C. 10//3
D. [1,2][5]
A. int("abc")
B. 10/0
D. [1,2][5]
會出錯的是:int("abc"), 10/0, [1,2][5]。
請將左側項目與右側正確的說明配對:(錯誤型別 ↔ 發生情境)
ZeroDivisionErrorValueErrorIndexErrorKeyErrorA. int("abc")
B. [1,2,3][9]
C. 10/0
D. {"a":1}["b"]
1 → C:ZeroDivisionError → 10/0
2 → A:ValueError → int("abc")
3 → B:IndexError → [1,2,3][9]
4 → D:KeyError → {"a":1}["b"]
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「使用try/except安全讀取整數輸入」
A.
num = int(input("請輸入整數:"))
B.
print(num)
C.
print("輸入錯誤")
D.
except ValueError:
E.
try:
E → A → B → D → C
try:
num = int(input("請輸入整數:"))
print(num)
except ValueError:
print("輸入錯誤")
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 TypeError」?(請選出所有正確答案)
A. "5"+5
B. "5"+"5"
C. 5+5
D. 5+"5"
A. "5"+5
D. 5+"5"
會出錯的是:"5"+5, 5+"5"。
請將左側項目與右側正確的說明配對:(除錯技巧 ↔ 說明)
print()除錯看錯誤訊息最後一行try/exceptfinallyA. 攔截並處理錯誤,避免程式崩潰
B. 不論是否出錯都會執行
C. 觀察變數目前的值
D. 判斷錯誤型別
1 → C:print()除錯 → 觀察變數目前的值
2 → D:看錯誤訊息最後一行 → 判斷錯誤型別
3 → A:try/except → 攔截並處理錯誤,避免程式崩潰
4 → B:finally → 不論是否出錯都會執行
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「用try/except防止除以0的錯誤」
A.
try:
B.
return a / b
C.
return "除數不能為0!"
D.
def divide(a, b):
E.
except ZeroDivisionError:
D → A → B → E → C
def divide(a, b):
try:
return a / b
except ZeroDivisionError:
return "除數不能為0!"
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 KeyError」?(請選出所有正確答案)
A. {"a":1}["b"]
B. {"a":1}.get("b")
C. {"a":1}["a"]
A. {"a":1}["b"]
會出錯的是:{"a":1}["b"]。
請將左側項目與右側正確的說明配對:(常見bug ↔ 修正方向)
無窮迴圈elif順序錯誤差一錯誤誤用相近變數A. 門檻高的條件寫在前面
B. 仔細核對變數名稱
C. 檢查range的邊界
D. 檢查條件變數是否有更新
1 → D:無窮迴圈 → 檢查條件變數是否有更新
2 → A:elif順序錯誤 → 門檻高的條件寫在前面
3 → C:差一錯誤 → 檢查range的邊界
4 → B:誤用相近變數 → 仔細核對變數名稱
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「修正無窮迴圈:讓number遞增後才能正確結束」
A.
while number <= 5:
B.
number = 1
C.
print(number)
D.
number += 1
B → A → C → D
number = 1
while number <= 5:
print(number)
number += 1
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 IndexError」?(請選出所有正確答案)
A. [1,2,3][3]
B. [1,2,3][2]
C. [1,2,3][-1]
D. [1,2,3][-4]
A. [1,2,3][3]
D. [1,2,3][-4]
會出錯的是:[1,2,3][3], [1,2,3][-4]。
請將左側項目與右側正確的說明配對:(錯誤型別 ↔ 白話說明)
TypeErrorNameErrorIndexErrorZeroDivisionErrorA. 型別不相容的運算
B. 使用未定義的變數
C. 除數為0
D. 索引超出範圍
1 → A:TypeError → 型別不相容的運算
2 → B:NameError → 使用未定義的變數
3 → D:IndexError → 索引超出範圍
4 → C:ZeroDivisionError → 除數為0
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「修正elif順序錯誤,讓成績判斷正確」
A.
grade = "甲"
B.
grade = "丙"
C.
else:
D.
elif score >= 80:
E.
grade = "優"
F.
if score >= 90:
G.
score = 85
G → F → E → D → A → C → B
score = 85
if score >= 90:
grade = "優"
elif score >= 80:
grade = "甲"
else:
grade = "丙"
正確順序如上(由上到下)。