第 1 題
單選題資料型別與運算子若 a = 19,b = 3,執行 print(a // b, a % b) 的輸出為?
a, b = 19, 3
print(a // b, a % b)
A. 6 1
B. 6.33 1
C. 6 6.33
D. 1 6
正確答案
A. 6 1
為什麼?
19 // 3 = 6(整數除法,取商);19 % 3 = 1(取餘數)。
第 9 回共 38 題,以重複值統計、串列複製與集合去重,檢查資料處理後的內容是否符合預期。搭配指定步長累加、倍數計數與平均分數函式,練習追蹤運算結果;後段複習浮點數輸入、型別轉換的 ValueError、索引錯誤及 random.choice()。適合整理常用資料操作和錯誤型別的差異;每題附答案與文字解析。
若 a = 19,b = 3,執行 print(a // b, a % b) 的輸出為?
a, b = 19, 3
print(a // b, a % b)
A. 6 1
B. 6.33 1
C. 6 6.33
D. 1 6
A. 6 1
19 // 3 = 6(整數除法,取商);19 % 3 = 1(取餘數)。
執行下列程式碼,結果為?
print(3 != 3 or 5 == 5)
A. True
B. False
C. None
D. 產生錯誤
A. True
逐步計算後,結果為 True。
執行下列程式碼,輸出為?
s = "ITS認證考試"
print(s[0:3].upper())
A. ITS
B. ITS認證考試
C. 產生錯誤
D. ITS認
A. ITS
字串切片 s[0:3] 會取出索引 0 到 2 的字元(不含索引 3)。
執行下列程式碼,輸出為?
s = "data science"
print(s.find("z"))
A. -1
B. 0
C. 1
D. 產生錯誤
A. -1
這段程式碼執行後的結果是 -1。 .find() 找不到子字串會回傳 -1。
nums = [2, 2, 3, 3, 3],執行以下程式碼後輸出為?
nums = [2, 2, 3, 3, 3]
print(nums.count(3))
A. 3
B. [2, 2, 3, 3, 3]
C. 4
D. 2
A. 3
依序執行後,結果為 3。
nums = [1, 2, 3],執行以下程式碼後輸出為?
nums = [1, 2, 3]
nums2 = nums.copy()
nums2.append(4)
print(nums, nums2)
A. [1, 2, 3] [1, 2, 3, 4]
B. [1, 2, 3]
C. 產生錯誤
D. [1, 2, 3] [1, 2, 3, 4]0
A. [1, 2, 3] [1, 2, 3, 4]
依序執行後,結果為 [1, 2, 3] [1, 2, 3, 4]。
下列選項中,何者屬於「建立空的可變容器」?(請選出所有正確答案)
A. list()
B. dict()
C. tuple()
D. str()
A. list()
B. dict()
正確答案為:list(), dict()。
請將左側項目與右側正確的說明配對:(型別轉換情境 ↔ 結果)
左側項目
int("5")str(5)float("5")bool(0)右側說明
A. 5(整數)
B. "5"(字串)
C. False
D. 5.0(浮點數)
1 → A:int("5") → 5(整數)
2 → B:str(5) → "5"(字串)
3 → D:float("5") → 5.0(浮點數)
4 → C:bool(0) → False
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「移除list中的重複值(利用set)」
A.
print(unique)
B.
unique = set(nums)
C.
nums = [1, 2, 2, 3, 3]
C → B → A
nums = [1, 2, 2, 3, 3]
unique = set(nums)
print(unique)
正確順序如上(由上到下)。
公司的員工績效考核系統要把分數轉換成等第:90分以上「優」、80~89分「甲」、70~79分「乙」、其餘「丙」。某員工本季考核分數是 69 分,執行下列程式碼,輸出的等第為?
score = 69
if score >= 90:
grade = '優'
elif score >= 80:
grade = '甲'
elif score >= 70:
grade = '乙'
else:
grade = '丙'
print(grade)
A. 丙
B. 優
C. 甲
D. 乙
A. 丙
score = 69,由上往下第一個成立的條件決定結果,答案是「丙」。
您正在撰寫一支「客服工單優先度分級系統」的判斷程式,需求是:score >= 90 判定為「急件」,score >= 60(未滿90)判定為「一般」,其餘為「低優先」。若 score = 45,執行下列程式碼,輸出的判定結果為?
score = 45
if score >= 90:
result = '急件'
elif score >= 60:
result = '一般'
else:
result = '低優先'
print(result)
A. 低優先
B. 急件
C. 一般
D. 產生錯誤
A. 低優先
score = 45,依序判斷後結果為「低優先」。
公司人資系統的升遷規則:年資(years,年)需 >= 2 且績效考核分數(rating)需 >= 80 才符合升遷資格。若 years = 8、rating = 81,執行下列程式碼,輸出結果為?
years = 8
rating = 81
if years >= 2 and rating >= 80:
print('符合升遷資格')
else:
print('不符合升遷資格')
A. 符合升遷資格
B. 不符合升遷資格
C. 產生錯誤
D. None
A. 符合升遷資格
and 需要兩個條件同時成立才是 True,此例 years>=2 為True、rating>=80 為True,所以結果是「符合升遷資格」。
您正在為公司教育訓練系統撰寫巢狀判斷程式,評定測驗結果:先看 score 是否及格(>=60),及格者再看 has_bonus 是否為 True 決定是否額外加分。若 score = 78、has_bonus = True,執行下列程式碼,輸出為?
score = 78
has_bonus = True
if score >= 60:
if has_bonus:
result = '及格+加分'
else:
result = '及格'
else:
result = '不及格'
print(result)
A. 及格+加分
B. 及格
C. 不及格
D. 產生錯誤
A. 及格+加分
外層先判斷 score >= 60 是否成立,成立才會進入內層判斷 has_bonus,結果為「及格+加分」。
審核系統的門檻判斷規則:x = 50,判斷條件是 x >= 50,執行下列程式碼,輸出為?(提醒:注意 >= 是否包含等於的情況)
x = 50
if x >= 50:
print('符合')
else:
print('另一種結果')
A. 符合
B. 另一種結果
C. 產生錯誤
D. None
A. 符合
x = 50、門檻 = 50,>= 包含等於的情況,所以條件成立,輸出「符合」。
您正在開發一支自動化報表腳本,需要計算編號 1 到 30(每次跳 3)之間所有訂單編號的總和。執行以下程式碼,print(total) 的輸出為?
total = 0
for i in range(1, 31, 3):
total += i
print(total)
A. 145
B. 148
C. 142
D. 290
A. 145
range(1, 31, 3) 會產生從 1 開始、每次加 3、直到小於 31 為止的數列,加總結果為 145。
公司的系統日誌分析腳本要掃描編號 1 到 40 的紀錄,統計其中有幾筆屬於「4的倍數」。執行以下程式碼,print(count) 的輸出為?
count = 0
for i in range(1, 41):
if i % 4 == 0:
count += 1
print(count)
A. 10
B. 11
C. 9
D. 產生錯誤
A. 10
迴圈逐一檢查 1 到 40 之間符合「4的倍數」的數字,總共有 10 個。
您正在開發一支業績分析程式,nums = [7, 7, 7, 3] 是各分店本月業績(萬元),需要找出業績最高的分店數字(不能用 max()),執行以下程式碼,輸出為?
nums = [7, 7, 7, 3]
biggest = nums[0]
for n in nums:
if n > biggest:
biggest = n
print(biggest)
A. 7
B. 3
C. 8
D. 24
A. 7
迴圈逐一比較,只要目前的數字比 biggest 大就更新 biggest,最後得到最大值 7。
下列選項中,何者「會執行迴圈本體3次」?(請選出所有正確答案)
A. for i in range(3):
B. for i in [0,1,2]:
C. for i in (0,1,2):
D. for i in {0,1,2}:
E. for i in range(1,3):
A. for i in range(3):
B. for i in [0,1,2]:
C. for i in (0,1,2):
D. for i in {0,1,2}:
正確答案為:for i in range(3):, for i in [0,1,2]:, for i in (0,1,2):, for i in {0,1,2}:。
請將左側項目與右側正確的說明配對:(迴圈效能情境 ↔ 說明)
左側項目
巢狀迴圈提前breakrange(a,b,c)while True + break右側說明
A. 可以節省不必要的執行次數
B. c決定間隔
C. 外層執行n次、內層每次m次,共n*m次
D. 常見的手動控制迴圈寫法
1 → C:巢狀迴圈 → 外層執行n次、內層每次m次,共n*m次
2 → A:提前break → 可以節省不必要的執行次數
3 → B:range(a,b,c) → c決定間隔
4 → D:while True + break → 常見的手動控制迴圈寫法
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「判斷成績等第(含優/及格/不及格)」
A.
print("不及格")
B.
elif score >= 60:
C.
print("優")
D.
score = 75
E.
if score >= 90:
F.
else:
G.
print("及格")
D → E → C → B → G → F → A
score = 75
if score >= 90:
print("優")
elif score >= 60:
print("及格")
else:
print("不及格")
正確順序如上(由上到下)。
公司人事系統要產生員工資料卡,name 是姓名、years 是年資。執行下列程式碼,輸出為?
name = "楊詩涵"
years = 14
print(f"{name}的年資是{years}年")
A. 楊詩涵的年資是14年
B. 楊詩涵的年資是years年
C. name的年資是14年
D. 產生錯誤
A. 楊詩涵的年資是14年
f-string 會把 {} 裡的變數名稱直接替換成變數目前的值。
您正在開發報表系統,想用特定符號分隔顯示各分區代碼,執行下列程式碼,輸出為?
print("9", "8", "7", sep=".")
A. 9.8.7
B. 9 8 7
C. 987
D. 產生錯誤
A. 9.8.7
print() 的 sep 參數會取代預設的空白分隔符,改用 "." 分隔各個值。
公司的系統日誌模組要讓兩次 print 印在同一行,執行下列程式碼,輸出為?(用  代表換行)
print("完成", end="v")
print("!")
A. 完成v!
B. 完成!
C. 完成!
D. 產生錯誤
A. 完成v!
print() 的 end 參數會取代預設的換行符號,這裡改成 "v",所以兩次 print 會接在同一行。
您正在開發公司內部系統的「包裹重量欄位」,讓使用者輸入資料,不論實際輸入什麼,執行下列程式碼後 print(type(...)) 顯示的型別一定是?
weight = float(input("包裹重量:"))
print(type(weight))
A. <class 'float'>
B. <class 'str'>
C. <class 'int'>
D. <class 'bool'>
A. <class 'float'>
input() 回傳值一律是字串;若程式碼中有 int()/float() 轉型,型別會依轉型函式而定。
電商後台系統要印出訂單金額明細。執行下列程式碼,輸出為?
order_id = "A1009"
amount = 290
print(f"{order_id}訂單金額{amount}元")
A. A1009訂單金額290元
B. A1009訂單金額amount元
C. order_id訂單金額290元
D. 產生錯誤
A. A1009訂單金額290元
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
您正在撰寫人資系統,需要公告每位員工的季度考核分數。執行下列程式碼,輸出為?
name = "宥辰"
score = 98
print(f"{name}本季考核{score}分")
A. 宥辰本季考核98分
B. 宥辰本季考核score分
C. name本季考核98分
D. 產生錯誤
A. 宥辰本季考核98分
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
下列選項中,何者「輸出後不會換行」?(請選出所有正確答案)
A. print("Bye", end="!")
B. print("Bye", end="\n")
A. print("Bye", end="!")
正確答案為:print("Bye", end="!")。
請將左側項目與右側正確的說明配對:(print()分隔符情境 ↔ 結果)
左側項目
print(1,2,3,sep="-")print(1,2,3,sep=",")print(1,2,3)右側說明
A. 1 2 3(預設空白)
B. 1,2,3
C. 1-2-3
1 → C:print(1,2,3,sep="-") → 1-2-3
2 → B:print(1,2,3,sep=",") → 1,2,3
3 → A:print(1,2,3) → 1 2 3(預設空白)
配對詳見左右對應關係。
下列何者是合法的 Python 變數名稱?
A. 9#tag
B. id_num
C. elif
D. 10bad
B. id_num
id_num 符合命名規則;其餘選項分別違反:不能數字開頭 / 不可用特殊符號或空白 / 不可使用保留字 elif。
下列何者會讓 Python 產生語法錯誤(不是合法註解)?
A. """ 這是註解 """
B. ''' 這是註解 '''
C. # 這是註解
D. -- 這是註解
D. -- 這是註解
Python 使用 # 作為單行註解,''' '''或""" """作為多行註解;// 和 <!-- --> 是其他語言的寫法,Python不支援。
下列敘述何者正確?
A. Python也是用大括號{}代表區塊,縮排只是美觀用途
B. 同一區塊可以混用空白與Tab,不影響執行
C. 縮排通常使用4個空白,且同一區塊不能混用空白與Tab
D. 縮排空白數量不需要一致,直譯器會自動判斷
C. 縮排通常使用4個空白,且同一區塊不能混用空白與Tab
Python 用縮排(通常4個空白)表示程式區塊歸屬,同一區塊縮排必須一致,否則會產生 IndentationError。
下列選項中,何者是合法的 Python 變數名稱?(請選出所有正確答案)
A. rec1
B. 1rec
C. rec_1
D. rec.1
E. def
A. rec1
C. rec_1
合法的有:rec1, rec_1;其餘違反命名規則(數字開頭/含空白或連字號/使用保留字)。
下列選項中,何者「屬於合法的for迴圈寫法」?(請選出所有正確答案)
A. for i in range(5): pass
B. for i in range(5):pass
C. for i in range(5) pass
A. for i in range(5): pass
B. for i in range(5):pass
正確答案為:for i in range(5): pass, for i in range(5):pass。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「定義函式計算平均分數並呼叫」
A.
def average(scores):
B.
print(average([88, 92, 76]))
C.
return sum(scores) / len(scores)
A → C → B
def average(scores):
return sum(scores) / len(scores)
print(average([88, 92, 76]))
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 IndexError」?(請選出所有正確答案)
A. [5,6][2]
B. [5,6][1]
C. [5,6][-1]
D. [5,6][-3]
A. [5,6][2]
D. [5,6][-3]
會出錯的是:[5,6][2], [5,6][-3]。
請將左側項目與右側正確的說明配對:(函式除錯情境 ↔ 問題)
左側項目
函式忘記return參數名稱打錯遞迴函式沒有終止條件縮排跑到函式外右側說明
A. 呼叫後拿到None
B. 產生NameError或TypeError
C. 邏輯不會被視為函式的一部分
D. 造成無窮遞迴
1 → A:函式忘記return → 呼叫後拿到None
2 → B:參數名稱打錯 → 產生NameError或TypeError
3 → D:遞迴函式沒有終止條件 → 造成無窮遞迴
4 → C:縮排跑到函式外 → 邏輯不會被視為函式的一部分
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「用try/except攔截型別轉換錯誤」
A.
x = float("3.14")
B.
except ValueError:
C.
print(x)
D.
try:
E.
print("轉型失敗")
D → A → C → B → E
try:
x = float("3.14")
print(x)
except ValueError:
print("轉型失敗")
正確順序如上(由上到下)。
random.choice([1,2,3]) 的作用是?
A. 從list中隨機選一個元素
B. 隨機排序list
C. 計算平均值
D. 刪除list中一個元素
A. 從list中隨機選一個元素
choice() 會從序列中隨機回傳一個元素。