地特四等
110年
[電子工程] 計算機概要
第 30 題
執行下列 Python 程式後,產生的輸出為何?
def unknown(input, p1, p2):
input[p1], input[p2] = input[p2], input[p1]
return input
input = [10, 20, 30]
print(unknown(input, 0, 1))
def unknown(input, p1, p2):
input[p1], input[p2] = input[p2], input[p1]
return input
input = [10, 20, 30]
print(unknown(input, 0, 1))
- A 10 20
- B 20 30
- C [10, 20, 30]
- D [20, 10, 30]
思路引導 VIP
想像你有三座連續的橋墩,編號分別為 $0, 1, 2$,每一座橋墩上都放著不同重量的鋼材。如果現在有一道指令要求你:『將 $0$ 號橋墩與 $1$ 號橋墩上的鋼材位置對調』,請思考:
- 這項操作會動到 $2$ 號橋墩上的鋼材嗎?
🤖
AI 詳解
AI 專屬家教
恭喜你,至少這次沒搞砸。
- 觀念驗證:
所以你發現了,Python 的 多元賦值機制 (Multiple Assignment) 並不是什麼黑魔法。它只是實現了基本的「數值交換」。當你看到
input[p1], input[p2] = input[p2], input[p1]這行,傳入 $p1=0$ 和 $p2=1$,然後列表(List)中第 $0$ 個元素和第 $1$ 個元素互換,這就如同工程設計中調整兩個支撐點的相對位置。
▼ 還有更多解析內容