第 1 題
單選題資料型別與運算子若 a = 23,b = 4,執行 print(a // b, a % b) 的輸出為?
a, b = 23, 4
print(a // b, a % b)
A. 5 3
B. 5.75 3
C. 5 5.75
D. 3 5
正確答案
A. 5 3
為什麼?
23 // 4 = 5(整數除法,取商);23 % 4 = 3(取餘數)。
第 3 回共 38 題,練習字串替換、串列移除與反轉,以及使用字典 get() 取得預設值。流程控制題包含指定步長的累加、倍數統計與持續讀取指令,另以預設參數函式、KeyError 和無窮迴圈修正檢查程式理解。作答時可特別留意資料如何改變,以及迴圈在什麼條件下結束;每題附答案與文字解析。
若 a = 23,b = 4,執行 print(a // b, a % b) 的輸出為?
a, b = 23, 4
print(a // b, a % b)
A. 5 3
B. 5.75 3
C. 5 5.75
D. 3 5
A. 5 3
23 // 4 = 5(整數除法,取商);23 % 4 = 3(取餘數)。
執行下列程式碼,結果為?
print(5 > 3 or 10 < 2)
A. True
B. False
C. None
D. 產生錯誤
A. True
逐步計算後,結果為 True。
執行下列程式碼,輸出為?
s = "國一總複習班"
print(s[0:3])
A. 國一總
B. 國一總複習班
C. 產生錯誤
D. 國一總複
A. 國一總
字串切片 s[0:3] 會取出索引 0 到 2 的字元(不含索引 3)。
執行下列程式碼,輸出為?
s = "hello world"
print(s.replace("o", "0"))
A. hell0 w0rld
B. hellO wOrld
C. 產生錯誤
D. HELL0 W0RLD
A. hell0 w0rld
這段程式碼執行後的結果是 hell0 w0rld。
nums = [8, 3, 3, 9],執行以下程式碼後輸出為?
nums = [8, 3, 3, 9]
nums.remove(3)
print(nums)
A. [8, 3, 9]
B. [8, 3, 3, 9]
C. [9, 3, 8]
D. [3, 8, 9]
A. [8, 3, 9]
依序執行後,結果為 [8, 3, 9]。
nums = [1, 2, 3],執行以下程式碼後輸出為?
nums = [1, 2, 3]
nums.reverse()
print(nums)
A. [3, 2, 1]
B. [1, 2, 3]
C. 產生錯誤
D. [3, 2, 1]0
A. [3, 2, 1]
依序執行後,結果為 [3, 2, 1]。
下列選項中,何者屬於「int結果」?(請選出所有正確答案)
A. 3+4
B. "3"+"4"
C. 3*4
D. int(3.9)
E. 3/4
A. 3+4
C. 3*4
D. int(3.9)
正確答案為:3+4, 3*4, int(3.9)。
請將左側項目與右側正確的說明配對:(list 方法 ↔ 功能)
左側項目
.append().insert().pop().sort()右側說明
A. 移除並回傳最後一個
B. 在指定位置插入
C. 由小到大排序
D. 加入元素到最後
1 → D:.append() → 加入元素到最後
2 → B:.insert() → 在指定位置插入
3 → A:.pop() → 移除並回傳最後一個
4 → C:.sort() → 由小到大排序
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「建立字典並用 .get() 安全取值」
A.
value = d.get("c", "無此鍵")
B.
print(value)
C.
d = {"a": 1, "b": 2}
C → A → B
d = {"a": 1, "b": 2}
value = d.get("c", "無此鍵")
print(value)
正確順序如上(由上到下)。
公司的員工績效考核系統要把分數轉換成等第:90分以上「優」、80~89分「甲」、70~79分「乙」、其餘「丙」。某員工本季考核分數是 95 分,執行下列程式碼,輸出的等第為?
score = 95
if score >= 90:
grade = '優'
elif score >= 80:
grade = '甲'
elif score >= 70:
grade = '乙'
else:
grade = '丙'
print(grade)
A. 優
B. 甲
C. 乙
D. 丙
A. 優
score = 95,由上往下第一個成立的條件決定結果,答案是「優」。
您正在撰寫一支「倉儲庫存管理系統」的判斷程式,需求是:stock >= 10 判定為「庫存充足」,stock >= 3(未滿10)判定為「庫存偏低」,其餘為「缺貨」。若 stock = 5,執行下列程式碼,輸出的判定結果為?
stock = 5
if stock >= 10:
result = '庫存充足'
elif stock >= 3:
result = '庫存偏低'
else:
result = '缺貨'
print(result)
A. 庫存偏低
B. 庫存充足
C. 缺貨
D. 產生錯誤
A. 庫存偏低
stock = 5,依序判斷後結果為「庫存偏低」。
公司人資系統的升遷規則:年資(years,年)需 >= 2 且績效考核分數(rating)需 >= 80 才符合升遷資格。若 years = 4、rating = 60,執行下列程式碼,輸出結果為?
years = 4
rating = 60
if years >= 2 and rating >= 80:
print('符合升遷資格')
else:
print('不符合升遷資格')
A. 不符合升遷資格
B. 符合升遷資格
C. 產生錯誤
D. None
A. 不符合升遷資格
and 需要兩個條件同時成立才是 True,此例 years>=2 為True、rating>=80 為False,所以結果是「不符合升遷資格」。
您正在為公司教育訓練系統撰寫巢狀判斷程式,評定測驗結果:先看 score 是否及格(>=60),及格者再看 has_bonus 是否為 True 決定是否額外加分。若 score = 55、has_bonus = True,執行下列程式碼,輸出為?
score = 55
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 = 80,判斷條件是 x >= 80,執行下列程式碼,輸出為?(提醒:注意 >= 是否包含等於的情況)
x = 80
if x >= 80:
print('核准')
else:
print('另一種結果')
A. 核准
B. 另一種結果
C. 產生錯誤
D. None
A. 核准
x = 80、門檻 = 80,>= 包含等於的情況,所以條件成立,輸出「核准」。
您正在開發一支自動化報表腳本,需要計算編號 1 到 20(每次跳 2)之間所有訂單編號的總和。執行以下程式碼,print(total) 的輸出為?
total = 0
for i in range(1, 21, 2):
total += i
print(total)
A. 100
B. 102
C. 98
D. 200
A. 100
range(1, 21, 2) 會產生從 1 開始、每次加 2、直到小於 21 為止的數列,加總結果為 100。
公司的系統日誌分析腳本要掃描編號 1 到 30 的紀錄,統計其中有幾筆屬於「3的倍數」。執行以下程式碼,print(count) 的輸出為?
count = 0
for i in range(1, 31):
if i % 3 == 0:
count += 1
print(count)
A. 10
B. 11
C. 9
D. 產生錯誤
A. 10
迴圈逐一檢查 1 到 30 之間符合「3的倍數」的數字,總共有 10 個。
您正在開發一支業績分析程式,nums = [12, 4, 18, 6] 是各分店本月業績(萬元),需要找出業績最高的分店數字(不能用 max()),執行以下程式碼,輸出為?
nums = [12, 4, 18, 6]
biggest = nums[0]
for n in nums:
if n > biggest:
biggest = n
print(biggest)
A. 18
B. 4
C. 19
D. 40
A. 18
迴圈逐一比較,只要目前的數字比 biggest 大就更新 biggest,最後得到最大值 18。
下列選項中,何者「會產生非空數列」?(請選出所有正確答案)
A. range(5)
B. range(1,5)
C. range(1,5,1)
D. range(5,1)
A. range(5)
B. range(1,5)
C. range(1,5,1)
正確答案為:range(5), range(1,5), range(1,5,1)。
請將左側項目與右側正確的說明配對:(range() 用法 ↔ 產生數列)
左側項目
range(5)range(1,5)range(0,10,2)range(5,0,-1)右側說明
A. 1,2,3,4
B. 0,2,4,6,8
C. 0,1,2,3,4
D. 5,4,3,2,1
1 → C:range(5) → 0,1,2,3,4
2 → A:range(1,5) → 1,2,3,4
3 → B:range(0,10,2) → 0,2,4,6,8
4 → D:range(5,0,-1) → 5,4,3,2,1
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「讓使用者持續輸入直到輸入 exit 為止」
A.
cmd = input("請輸入指令:")
B.
cmd = ""
C.
print("已結束")
D.
while cmd != "exit":
B → D → A → C
cmd = ""
while cmd != "exit":
cmd = input("請輸入指令:")
print("已結束")
正確順序如上(由上到下)。
公司人事系統要產生員工資料卡,name 是姓名、years 是年資。執行下列程式碼,輸出為?
name = "王阿強"
years = 14
print(f"{name}的年資是{years}年")
A. 王阿強的年資是14年
B. 王阿強的年資是years年
C. name的年資是14年
D. 產生錯誤
A. 王阿強的年資是14年
f-string 會把 {} 裡的變數名稱直接替換成變數目前的值。
您正在開發報表系統,想用特定符號分隔顯示各分區代碼,執行下列程式碼,輸出為?
print("1", "2", "3", sep="/")
A. 1/2/3
B. 1 2 3
C. 123
D. 產生錯誤
A. 1/2/3
print() 的 sep 參數會取代預設的空白分隔符,改用 "/" 分隔各個值。
公司的系統日誌模組要讓兩次 print 印在同一行,執行下列程式碼,輸出為?(用  代表換行)
print("OK", end="...")
print("!")
A. OK...!
B. OK!
C. OK!
D. 產生錯誤
A. OK...!
print() 的 end 參數會取代預設的換行符號,這裡改成 "...",所以兩次 print 會接在同一行。
您正在開發公司內部系統的「績效分數欄位」,讓使用者輸入資料,不論實際輸入什麼,執行下列程式碼後 print(type(...)) 顯示的型別一定是?
score = float(input("績效分數:"))
print(type(score))
A. <class 'float'>
B. <class 'str'>
C. <class 'int'>
D. <class 'bool'>
A. <class 'float'>
input() 回傳值一律是字串;若程式碼中有 int()/float() 轉型,型別會依轉型函式而定。
電商後台系統要印出訂單金額明細。執行下列程式碼,輸出為?
order_id = "A1003"
amount = 290
print(f"{order_id}訂單金額{amount}元")
A. A1003訂單金額290元
B. A1003訂單金額amount元
C. order_id訂單金額290元
D. 產生錯誤
A. A1003訂單金額290元
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
您正在撰寫人資系統,需要公告每位員工的季度考核分數。執行下列程式碼,輸出為?
name = "庭安"
score = 98
print(f"{name}本季考核{score}分")
A. 庭安本季考核98分
B. 庭安本季考核score分
C. name本季考核98分
D. 產生錯誤
A. 庭安本季考核98分
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
下列選項中,何者「可以把變數x轉成字串顯示」?(請選出所有正確答案)
A. f"{x}"
B. str(x)
C. "{}"format(x)
D. x
A. f"{x}"
B. str(x)
C. "{}"format(x)
正確答案為:f"{x}", str(x), "{}"format(x)。
請將左側項目與右側正確的說明配對:(格式化寫法 ↔ 說明)
左側項目
f-stringstr().format()右側說明
A. 把數值轉成字串
B. 舊式的字串格式化方法
C. 把變數直接嵌入字串
1 → C:f-string → 把變數直接嵌入字串
2 → A:str() → 把數值轉成字串
3 → B:.format() → 舊式的字串格式化方法
配對詳見左右對應關係。
下列何者是合法的 Python 變數名稱?
A. 4bad
B. _temp
C. while
D. my 3
B. _temp
_temp 符合命名規則;其餘選項分別違反:不能數字開頭 / 不可用特殊符號或空白 / 不可使用保留字 while。
下列何者會被 Python 直譯器忽略(視為註解)?
A. # print(x)
B. print(#x)
C. print(x) #
D. #print(x)#
A. # print(x)
Python 使用 # 作為單行註解,''' '''或""" """作為多行註解;// 和 <!-- --> 是其他語言的寫法,Python不支援。
下列程式碼會發生什麼問題? for i in range(3): print(i) print('done')
A. SyntaxError(少了冒號)
B. NameError(變數未定義)
C. IndentationError(縮排不一致)
D. 正常執行,不會有問題
C. IndentationError(縮排不一致)
Python 用縮排(通常4個空白)表示程式區塊歸屬,同一區塊縮排必須一致,否則會產生 IndentationError。
下列選項中,何者是合法的 Python 變數名稱?(請選出所有正確答案)
A. _id
B. id#1
C. id_1
D. for
E. grade9
A. _id
C. id_1
E. grade9
合法的有:_id, id_1, grade9;其餘違反命名規則(數字開頭/含空白或連字號/使用保留字)。
下列選項中,何者「屬於合法(不會有語法錯誤)的if寫法」?(請選出所有正確答案)
A. if x > 0: print(x)
B. if x > 0: print(x)
C. if x > 0 print(x)
A. if x > 0: print(x)
正確答案為:if x > 0: print(x)。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「定義一個帶預設參數的問候函式並呼叫兩次」
A.
print(f"哈囉,{name}")
B.
greet()
C.
greet("小明")
D.
def greet(name="訪客"):
D → A → B → C
def greet(name="訪客"):
print(f"哈囉,{name}")
greet()
greet("小明")
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生 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
正確順序如上(由上到下)。
要讓程式暫停 2 秒,需要用到哪個模組?
A. time
B. math
C. random
D. os
A. time
import time,使用 time.sleep(2)。