第 1 題
單選題資料型別與運算子執行下列程式碼,結果為?
print("-" * 5)
A. -----
B. ------
C. 產生錯誤
D. ----
正確答案
A. -----
為什麼?
字串的 * 是重複、+ 是串接,依運算優先順序(* 先於 +)計算後結果為 "-----"。
第 6 回共 38 題,從分隔文字、擴充串列與字數統計函式,練習判讀資料處理的結果。流程控制部分著重 range() 的起點、終點與步長,以及計數器是否如預期更新;另搭配行內註解、例外處理關鍵字與時間模組辨識。適合檢查迴圈少跑或多跑一次等容易忽略的細節;每題附答案與文字解析。
執行下列程式碼,結果為?
print("-" * 5)
A. -----
B. ------
C. 產生錯誤
D. ----
A. -----
字串的 * 是重複、+ 是串接,依運算優先順序(* 先於 +)計算後結果為 "-----"。
執行下列程式碼,結果為?(提示:留意運算子優先順序)
print(10 - 2 ** 2)
A. 6
B. 7
C. 5
D. 12
A. 6
Python 的運算子優先順序是 ** 最高,接著是 * 和 /,最後是 + 和 -,括號會優先運算。結果為 6。
執行下列程式碼,結果為?
print(len("a-b-c-d".split("-")))
A. 4
B. 5
C. 3
D. 產生錯誤
A. 4
.split() 會依指定符號把字串切成 list,共切出 4 個元素。
執行下列程式碼,輸出為?
s = "hello"
print(s[::-1])
A. olleh
B. hello
C. 產生錯誤
D. OLLEH
A. olleh
負數索引從字串尾端開始數(-1 是最後一個字元),這段程式碼的結果是 "olleh"。
nums = [6, 3, 9, 1],執行以下程式碼後輸出為?
nums = [6, 3, 9, 1]
nums.sort(reverse=True)
print(nums)
A. [9, 6, 3, 1]
B. [6, 3, 9, 1]
C. [1, 6, 3, 9]
D. [1, 3, 6, 9]
A. [9, 6, 3, 1]
依序執行後,結果為 [9, 6, 3, 1]。
nums = [2, 4],執行以下程式碼後輸出為?
nums = [2, 4]
nums.extend([6,8])
print(nums)
A. [2, 4, 6, 8]
B. [2, 4]
C. [8, 4, 6, 2]
D. [8, 6, 4, 2]
A. [2, 4, 6, 8]
依序執行後,結果為 [2, 4, 6, 8]。
下列選項中,何者屬於「布林相關」?(請選出所有正確答案)
A. True
B. False
C. 1==1
D. 0
E. "True"
A. True
B. False
C. 1==1
正確答案為:True, False, 1==1。
請將左側項目與右側正確的說明配對:(比較運算子 ↔ 意義)
左側項目
==!=>=<=右側說明
A. 大於等於
B. 是否不相等
C. 小於等於
D. 是否相等
1 → D:== → 是否相等
2 → B:!= → 是否不相等
3 → A:>= → 大於等於
4 → C:<= → 小於等於
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「對串列排序後取出最大值」
A.
nums.sort()
B.
nums = [5, 2, 8, 1]
C.
print(nums[-1])
B → A → C
nums = [5, 2, 8, 1]
nums.sort()
print(nums[-1])
正確順序如上(由上到下)。
公司的員工績效考核系統要把分數轉換成等第:90分以上「優」、80~89分「甲」、70~79分「乙」、其餘「丙」。某員工本季考核分數是 88 分,執行下列程式碼,輸出的等第為?
score = 88
if score >= 90:
grade = '優'
elif score >= 80:
grade = '甲'
elif score >= 70:
grade = '乙'
else:
grade = '丙'
print(grade)
A. 甲
B. 優
C. 乙
D. 丙
A. 甲
score = 88,由上往下第一個成立的條件決定結果,答案是「甲」。
您正在撰寫一支「CPU使用率監控系統」的判斷程式,需求是:cpu >= 90 判定為「危險」,cpu >= 70(未滿90)判定為「警戒」,其餘為「正常」。若 cpu = 55,執行下列程式碼,輸出的判定結果為?
cpu = 55
if cpu >= 90:
result = '危險'
elif cpu >= 70:
result = '警戒'
else:
result = '正常'
print(result)
A. 正常
B. 危險
C. 警戒
D. 產生錯誤
A. 正常
cpu = 55,依序判斷後結果為「正常」。
公司人資系統的升遷規則:年資(years,年)需 >= 2 且績效考核分數(rating)需 >= 80 才符合升遷資格。若 years = 5、rating = 88,執行下列程式碼,輸出結果為?
years = 5
rating = 88
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 = 45、has_bonus = False,執行下列程式碼,輸出為?
score = 45
has_bonus = False
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,> 不包含等於的情況,所以條件不成立,輸出「另一種結果」。
公司的系統通知模組要把 words = ['備份', '作業', '執行', '成功'] 這幾個片段組成一則完整的訊息字串,執行以下程式碼,輸出為?
words = ['備份', '作業', '執行', '成功']
result = ''
for w in words:
result += w
print(result)
A. 備份作業執行成功
B. 備份 作業 執行 成功
C. 成功執行作業備份
D. 產生錯誤
A. 備份作業執行成功
迴圈逐一把每個元素用 += 接到 result 後面,最後得到 "備份作業執行成功"。
您正在開發一支自動化測試腳本,用巢狀迴圈跑所有組合:外層跑 2 種瀏覽器、內層每種瀏覽器都測 5 個頁面,執行以下程式碼,count 最後代表總測試次數,其值為?
count = 0
for i in range(2):
for j in range(5):
count += 1
print(count)
A. 10
B. 7
C. 12
D. 9
A. 10
外層執行 2 次,內層每次執行 5 次,總共執行 2 × 5 = 10 次。
公司系統的 API 重試機制規則:計數器 i 從 20 開始,每次減少 2,直到小於 10 為止才停止重試,count 記錄總共重試了幾次。執行以下程式碼,輸出為?
i = 20
count = 0
while i > 10:
count += 1
i += -2
print(count)
A. 5
B. 6
C. 4
D. 產生錯誤(無窮迴圈)
A. 5
迴圈每次讓 i 減少 2,總共執行了 5 次才符合結束條件。
下列選項中,何者「會產生數字」?(請選出所有正確答案)
A. range(0,10,2)
B. range(10,0,-2)
C. range(0,10,-2)
D. range(1,10)
A. range(0,10,2)
B. range(10,0,-2)
正確答案為:range(0,10,2), range(10,0,-2)。
請將左側項目與右側正確的說明配對:(巢狀判斷情境 ↔ 結果)
左側項目
外層條件不成立外層成立、內層也成立外層成立、內層不成立elif門檻寫反右側說明
A. 執行內層else區塊
B. 可能誤判
C. 不會進入內層判斷
D. 執行內層if區塊
1 → C:外層條件不成立 → 不會進入內層判斷
2 → D:外層成立、內層也成立 → 執行內層if區塊
3 → A:外層成立、內層不成立 → 執行內層else區塊
4 → B:elif門檻寫反 → 可能誤判
配對詳見左右對應關係。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「用巢狀迴圈印出九九乘法表的一列(以3為例)」
A.
print(3 * j, end=" ")
B.
for j in range(1, 10):
C.
print()
B → A → C
for j in range(1, 10):
print(3 * j, end=" ")
print()
正確順序如上(由上到下)。
公司人事系統要產生員工資料卡,name 是姓名、years 是年資。執行下列程式碼,輸出為?
name = "吳俊宏"
years = 14
print(f"{name}的年資是{years}年")
A. 吳俊宏的年資是14年
B. 吳俊宏的年資是years年
C. name的年資是14年
D. 產生錯誤
A. 吳俊宏的年資是14年
f-string 會把 {} 裡的變數名稱直接替換成變數目前的值。
您正在開發報表系統,想用特定符號分隔顯示各分區代碼,執行下列程式碼,輸出為?
print("東", "西", "南", "北", sep="、")
A. 東、西、南、北
B. 東 西 南 北
C. 東西南北
D. 產生錯誤
A. 東、西、南、北
print() 的 sep 參數會取代預設的空白分隔符,改用 "、" 分隔各個值。
公司的系統日誌模組要讓兩次 print 印在同一行,執行下列程式碼,輸出為?(用  代表換行)
print("嗨", end="!")
print("!")
A. 嗨!!
B. 嗨!
C. 嗨!
D. 產生錯誤
A. 嗨!!
print() 的 end 參數會取代預設的換行符號,這裡改成 "!",所以兩次 print 會接在同一行。
您正在開發公司內部系統的「商品單價欄位」,讓使用者輸入資料,不論實際輸入什麼,執行下列程式碼後 print(type(...)) 顯示的型別一定是?
price = float(input("商品單價:"))
print(type(price))
A. <class 'float'>
B. <class 'str'>
C. <class 'int'>
D. <class 'bool'>
A. <class 'float'>
input() 回傳值一律是字串;若程式碼中有 int()/float() 轉型,型別會依轉型函式而定。
電商後台系統要印出訂單金額明細。執行下列程式碼,輸出為?
order_id = "A1006"
amount = 290
print(f"{order_id}訂單金額{amount}元")
A. A1006訂單金額290元
B. A1006訂單金額amount元
C. order_id訂單金額290元
D. 產生錯誤
A. A1006訂單金額290元
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
您正在撰寫人資系統,需要公告每位員工的季度考核分數。執行下列程式碼,輸出為?
name = "柏宇"
score = 98
print(f"{name}本季考核{score}分")
A. 柏宇本季考核98分
B. 柏宇本季考核score分
C. name本季考核98分
D. 產生錯誤
A. 柏宇本季考核98分
f-string 會把 {} 裡的變數名稱替換成變數的實際值。
下列選項中,何者「輸出會是 X Y」?(請選出所有正確答案)
A. print("X","Y")
B. print("X","Y",sep=" ")
C. print("XY")
D. print("X"+" "+"Y")
A. print("X","Y")
B. print("X","Y",sep=" ")
D. print("X"+" "+"Y")
正確答案為:print("X","Y"), print("X","Y",sep=" "), print("X"+" "+"Y")。
請將左側項目與右側正確的說明配對:(輸出情境 ↔ 對應寫法)
左側項目
印出後不換行用逗號分隔多個值印出變數的型別右側說明
A. print(x, end="")
B. print(type(x))
C. print(a, b, sep=",")
1 → A:印出後不換行 → print(x, end="")
2 → C:用逗號分隔多個值 → print(a, b, sep=",")
3 → B:印出變數的型別 → print(type(x))
配對詳見左右對應關係。
下列何者是合法的 Python 變數名稱?
A. 6score
B. 7bad
C. return
D. data_1
D. data_1
data_1 符合命名規則;其餘選項分別違反:不能數字開頭 / 不可用特殊符號或空白 / 不可使用保留字 return。
要暫時停用一行程式碼(不刪除),該怎麼做?
A. *x = 5*
B. 'x = 5'
C. //x = 5
D. # x = 5
D. # x = 5
Python 使用 # 作為單行註解,''' '''或""" """作為多行註解;// 和 <!-- --> 是其他語言的寫法,Python不支援。
下列程式碼執行時會如何? if True: x = 1 y = 2 print(x, y)
A. 產生 IndentationError
B. 產生 SyntaxError
C. 正常執行,輸出 1 2
D. 沒有任何輸出
C. 正常執行,輸出 1 2
Python 用縮排(通常4個空白)表示程式區塊歸屬,同一區塊縮排必須一致,否則會產生 IndentationError。
下列選項中,何者是合法的 Python 變數名稱?(請選出所有正確答案)
A. val_a
B. val a
C. val-a
D. _val_a
E. 9val
A. val_a
D. _val_a
合法的有:val_a, _val_a;其餘違反命名規則(數字開頭/含空白或連字號/使用保留字)。
下列選項中,何者「屬於合法的行內註解寫法(不影響執行)」?(請選出所有正確答案)
A. x = 5 # 設定初始值
B. x = 5 #設定初始值
C. x = 5#設定初始值
D. x = 5 // 設定初始值
A. x = 5 # 設定初始值
B. x = 5 #設定初始值
C. x = 5#設定初始值
正確答案為:x = 5 # 設定初始值, x = 5 #設定初始值, x = 5#設定初始值。
請將以下程式碼片段排列成正確的執行順序,使其能完成任務:「定義函式計算字串的單字數並呼叫」
A.
return len(s.split())
B.
def word_count(s):
C.
print(word_count("I love Python"))
B → A → C
def word_count(s):
return len(s.split())
print(word_count("I love Python"))
正確順序如上(由上到下)。
下列選項中,執行後何者「會產生錯誤」?(請選出所有正確答案)
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關鍵字 ↔ 作用)
左側項目
tryexceptfinallyraise右側說明
A. 不論是否出錯都會執行
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)
正確順序如上(由上到下)。
要取得目前系統時間,常用哪個模組?
A. time
B. math
C. random
D. re
A. time
time 模組可取得系統時間,如 time.time()。