第 1 題
單選題資料型別與運算子若 a = 29,b = 6,執行 print(a // b, a % b) 的輸出為?
a, b = 29, 6
print(a // b, a % b)
A. 4 5
B. 4.83 5
C. 4 4.83
D. 5 4
正確答案
A. 4 5
為什麼?
29 // 6 = 4(整數除法,取商);29 % 6 = 5(取餘數)。
第 5 回透過 38 題練習資料彙整與邊界判斷,包含字串搜尋、串列總和、最大值與最小值,以及滿額門檻的比較。搭配考核分數格式化輸出、數值差距函式和 try/except/finally 排序題,檢查正常流程與錯誤處理的執行順序,並複習隨機整數的取值範圍;每題附答案與文字解析。
若 a = 29,b = 6,執行 print(a // b, a % b) 的輸出為?
a, b = 29, 6
print(a // b, a % b)
A. 4 5
B. 4.83 5
C. 4 4.83
D. 5 4
A. 4 5
29 // 6 = 4(整數除法,取商);29 % 6 = 5(取餘數)。
執行下列程式碼,結果為?
print(not (3 == 3))
A. False
B. True
C. None
D. 產生錯誤
A. False
逐步計算後,結果為 False。
執行下列程式碼,輸出為?
s = "Hello World"
print(s[0:5].upper())
A. HELLO
B. Hello World
C. 產生錯誤
D. HELL
A. HELLO
字串切片 s[0:5] 會取出索引 0 到 4 的字元(不含索引 5)。
執行下列程式碼,輸出為?
s = "ITS Python"
print(s.find("Python"))
A. 4
B. 5
C. 3
D. 產生錯誤
A. 4
這段程式碼執行後的結果是 4。
nums = [7, 7, 2, 9],執行以下程式碼後輸出為?
nums = [7, 7, 2, 9]
print(max(nums), min(nums))
A. 9 2
B. [7, 7, 2, 9]
C. 產生錯誤
D. 9 20
A. 9 2
依序執行後,結果為 9 2。
nums = [1, 2, 3, 4, 5],執行以下程式碼後輸出為?
nums = [1, 2, 3, 4, 5]
print(sum(nums))
A. 15
B. [1, 2, 3, 4, 5]
C. 16
D. 14
A. 15
依序執行後,結果為 15。
下列選項中,何者屬於「可變(mutable)型別」?(請選出所有正確答案)
A. [1,2]
B. (1,2)
C. {1,2}
D. "12"
E. 12
A. [1,2]
C. {1,2}
正確答案為:[1,2], {1,2}。
請將左側項目與右側正確的說明配對:(字串方法 ↔ 功能)
左側項目
.upper().split().strip().replace()右側說明
A. 依符號切割
B. 取代文字
C. 去除頭尾空白
D. 轉大寫
1 → D:.upper() → 轉大寫
2 → A:.split() → 依符號切割
3 → C:.strip() → 去除頭尾空白
4 → B:.replace() → 取代文字
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「將字串依逗號切割並計算長度」
A.
s = "a,b,c,d"
B.
print(len(parts))
C.
parts = s.split(",")
A → C → B
s = "a,b,c,d"
parts = s.split(",")
print(len(parts))
正確順序如上(由上到下)。
公司的員工績效考核系統要把分數轉換成等第:90分以上「優」、80~89分「甲」、70~79分「乙」、其餘「丙」。某員工本季考核分數是 55 分,執行下列程式碼,輸出的等第為?
score = 55
if score >= 90:
grade = '優'
elif score >= 80:
grade = '甲'
elif score >= 70:
grade = '乙'
else:
grade = '丙'
print(grade)
A. 丙
B. 優
C. 甲
D. 乙
A. 丙
score = 55,由上往下第一個成立的條件決定結果,答案是「丙」。
您正在撰寫一支「機房溫度監控系統」的判斷程式,需求是:temp >= 80 判定為「過熱」,temp >= 60(未滿80)判定為「偏高」,其餘為「正常」。若 temp = 78,執行下列程式碼,輸出的判定結果為?
temp = 78
if temp >= 80:
result = '過熱'
elif temp >= 60:
result = '偏高'
else:
result = '正常'
print(result)
A. 偏高
B. 過熱
C. 正常
D. 產生錯誤
A. 偏高
temp = 78,依序判斷後結果為「偏高」。
公司人資系統的升遷規則:年資(years,年)需 >= 2 且績效考核分數(rating)需 >= 80 才符合升遷資格。若 years = 1、rating = 79,執行下列程式碼,輸出結果為?
years = 1
rating = 79
if years >= 2 and rating >= 80:
print('符合升遷資格')
else:
print('不符合升遷資格')
A. 不符合升遷資格
B. 符合升遷資格
C. 產生錯誤
D. None
A. 不符合升遷資格
and 需要兩個條件同時成立才是 True,此例 years>=2 為False、rating>=80 為False,所以結果是「不符合升遷資格」。
您正在為公司教育訓練系統撰寫巢狀判斷程式,評定測驗結果:先看 score 是否及格(>=60),及格者再看 has_bonus 是否為 True 決定是否額外加分。若 score = 70、has_bonus = True,執行下列程式碼,輸出為?
score = 70
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 = 100,判斷條件是 x >= 100,執行下列程式碼,輸出為?(提醒:注意 >= 是否包含等於的情況)
x = 100
if x >= 100:
print('滿額')
else:
print('另一種結果')
A. 滿額
B. 另一種結果
C. 產生錯誤
D. None
A. 滿額
x = 100、門檻 = 100,>= 包含等於的情況,所以條件成立,輸出「滿額」。
您正在開發一支自動化報表腳本,需要計算編號 1 到 15(每次跳 1)之間所有訂單編號的總和。執行以下程式碼,print(total) 的輸出為?
total = 0
for i in range(1, 16, 1):
total += i
print(total)
A. 120
B. 121
C. 119
D. 240
A. 120
range(1, 16, 1) 會產生從 1 開始、每次加 1、直到小於 16 為止的數列,加總結果為 120。
公司的系統日誌分析腳本要掃描編號 1 到 50 的紀錄,統計其中有幾筆屬於「5的倍數」。執行以下程式碼,print(count) 的輸出為?
count = 0
for i in range(1, 51):
if i % 5 == 0:
count += 1
print(count)
A. 10
B. 11
C. 9
D. 產生錯誤
A. 10
迴圈逐一檢查 1 到 50 之間符合「5的倍數」的數字,總共有 10 個。
您正在開發一支業績分析程式,nums = [2, 2, 9, 1] 是各分店本月業績(萬元),需要找出業績最高的分店數字(不能用 max()),執行以下程式碼,輸出為?
nums = [2, 2, 9, 1]
biggest = nums[0]
for n in nums:
if n > biggest:
biggest = n
print(biggest)
A. 9
B. 1
C. 10
D. 14
A. 9
迴圈逐一比較,只要目前的數字比 biggest 大就更新 biggest,最後得到最大值 9。
下列選項中,何者「能讓 i 遞增1(合法Python語法)」?(請選出所有正確答案)
A. i += 1
B. i = i + 1
C. i++
D. i = i - (-1)
A. i += 1
B. i = i + 1
D. i = i - (-1)
正確答案為:i += 1, i = i + 1, i = i - (-1)。
請將左側項目與右側正確的說明配對:(迴圈情境 ↔ 適合寫法)
左側項目
已知重複次數不確定要重複幾次,依條件停止跳過偶數但繼續其他找到目標就提前結束右側說明
A. while迴圈
B. for迴圈
C. break
D. continue
1 → B:已知重複次數 → for迴圈
2 → A:不確定要重複幾次,依條件停止 → while迴圈
3 → D:跳過偶數但繼續其他 → continue
4 → C:找到目標就提前結束 → break
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「統計1到100之間3的倍數個數」
A.
if i % 3 == 0:
B.
for i in range(1, 101):
C.
count += 1
D.
count = 0
E.
print(count)
D → B → A → C → E
count = 0
for i in range(1, 101):
if i % 3 == 0:
count += 1
print(count)
正確順序如上(由上到下)。
公司人事系統要產生員工資料卡,name 是姓名、years 是年資。執行下列程式碼,輸出為?
name = "黃佳佳"
years = 12
print(f"{name}的年資是{years}年")
A. 黃佳佳的年資是12年
B. 黃佳佳的年資是years年
C. name的年資是12年
D. 產生錯誤
A. 黃佳佳的年資是12年
f-string 會把 {} 裡的變數名稱直接替換成變數目前的值。
您正在開發報表系統,想用特定符號分隔顯示各分區代碼,執行下列程式碼,輸出為?
print("北區", "中區", "南區", sep="#")
A. 北區#中區#南區
B. 北區 中區 南區
C. 北區中區南區
D. 產生錯誤
A. 北區#中區#南區
print() 的 sep 參數會取代預設的空白分隔符,改用 "#" 分隔各個值。
公司的系統日誌模組要讓兩次 print 印在同一行,執行下列程式碼,輸出為?(用  代表換行)
print("Yo", end="*")
print("!")
A. Yo*!
B. Yo!
C. Yo!
D. 產生錯誤
A. Yo*!
print() 的 end 參數會取代預設的換行符號,這裡改成 "*",所以兩次 print 會接在同一行。
您正在開發公司內部系統的「庫存數量欄位」,讓使用者輸入資料,不論實際輸入什麼,執行下列程式碼後 print(type(...)) 顯示的型別一定是?
count = int(input("庫存數量:"))
print(type(count))
A. <class 'int'>
B. <class 'str'>
C. <class 'float'>
D. <class 'bool'>
A. <class 'int'>
input() 回傳值一律是字串;若程式碼中有 int()/float() 轉型,型別會依轉型函式而定。
電商後台系統要印出訂單金額明細。執行下列程式碼,輸出為?
order_id = "A1005"
amount = 270
print(f"{order_id}訂單金額{amount}元")
A. A1005訂單金額270元
B. A1005訂單金額amount元
C. order_id訂單金額270元
D. 產生錯誤
A. A1005訂單金額270元
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
您正在撰寫人資系統,需要公告每位員工的季度考核分數。執行下列程式碼,輸出為?
name = "芷晴"
score = 84
print(f"{name}本季考核{score}分")
A. 芷晴本季考核84分
B. 芷晴本季考核score分
C. name本季考核84分
D. 產生錯誤
A. 芷晴本季考核84分
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
下列選項中,何者「輸出為 1 2 3」?(請選出所有正確答案)
A. print(1,2,3)
B. print(1,2,3,sep=" ")
C. print("1 2 3")
D. print(1,2,3,sep=",")
A. print(1,2,3)
B. print(1,2,3,sep=" ")
C. print("1 2 3")
正確答案為:print(1,2,3), print(1,2,3,sep=" "), print("1 2 3")。
請將左側項目與右側正確的說明配對:(型別轉換情境 ↔ 用途)
左側項目
input()回傳值int(input())float(input())右側說明
A. 轉成整數再運算
B. 轉成浮點數再運算
C. 一律是字串
1 → C:input()回傳值 → 一律是字串
2 → A:int(input()) → 轉成整數再運算
3 → B:float(input()) → 轉成浮點數再運算
配對詳見左右對應關係。
下列何者是合法的 Python 變數名稱?
A. user_name
B. 5.val
C. def
D. 6bad
A. user_name
user_name 符合命名規則;其餘選項分別違反:不能數字開頭 / 不可用特殊符號或空白 / 不可使用保留字 def。
下列何者是合法的多行註解寫法?
A. """ 說明文字 """
B. ''' 說明文字 //
C. # 說明文字 #
D. <!-- 說明文字 -->
A. """ 說明文字 """
Python 使用 # 作為單行註解,''' '''或""" """作為多行註解;// 和 <!-- --> 是其他語言的寫法,Python不支援。
下列敘述何者正確?
A. Python也是用大括號{}代表區塊,縮排只是美觀用途
B. 同一區塊可以混用空白與Tab,不影響執行
C. Python用縮排代表程式區塊,取代其他語言常用的大括號{}
D. 縮排空白數量不需要一致,直譯器會自動判斷
C. Python用縮排代表程式區塊,取代其他語言常用的大括號{}
Python 用縮排(通常4個空白)表示程式區塊歸屬,同一區塊縮排必須一致,否則會產生 IndentationError。
下列選項中,何者是合法的 Python 變數名稱?(請選出所有正確答案)
A. name2
B. 2name
C. name_2
D. name.2
E. if
A. name2
C. name_2
合法的有:name2, name_2;其餘違反命名規則(數字開頭/含空白或連字號/使用保留字)。
下列選項中,何者「屬於合法的return寫法」?(請選出所有正確答案)
A. return x
B. return
C. return x, y
D. return x y
A. return x
B. return
C. return x, y
正確答案為:return x, return, return x, y。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「定義函式回傳串列中的最大值減最小值」
A.
return max(nums) - min(nums)
B.
def spread(nums):
C.
print(spread([3, 9, 1, 7]))
B → A → C
def spread(nums):
return max(nums) - min(nums)
print(spread([3, 9, 1, 7]))
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 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("執行完畢")
正確順序如上(由上到下)。
random.randint(1,10) 產生的範圍為?
A. 1~10(兩端皆含)
B. 1~9
C. 0~10
D. 2~10
A. 1~10(兩端皆含)
randint(a,b) 產生的範圍是 a 到 b,兩端都包含。