普通考試
114年
[資訊處理] 計算機概要
第 18 題
若執行以下的 Python 程式碼,則螢幕上的輸出為下列何者?
```python
data = [x*y for x in range(4) for y in range(3) if x>y and y%2==0]
print(data)
```
```python
data = [x*y for x in range(4) for y in range(3) if x>y and y%2==0]
print(data)
```
- A [6, 8]
- B [0, 0, 0, 6]
- C [0, 0, 2, 0, 3, 6]
- D [2, 3, 6, 4, 8, 12]
思路引導 VIP
要拆解這種單行寫法的程式碼,你能試著在紙上把它展開成傳統的 for 迴圈與 if 判斷式嗎?展開之後,符合 y % 2 == 0 的 $y$ 值會剩下哪幾個數字?接著再套入 $x > y$ 去配對看看呢?
🤖
AI 詳解
AI 專屬家教
🎉 教授點評與詳解
太棒了! 你的 Python 基礎非常紮實,完全掌握了這段程式碼的邏輯,教授對此給予高度肯定!
- 觀念驗證:
▼ 還有更多解析內容
Python 串列推導式
💡 掌握巢狀迴圈推導式的執行順序與條件過濾機制
🔗 串列推導式執行邏輯鏈
- 1 外層迴圈 — 依序取出 x 之值 (0, 1, 2, 3)
- 2 內層迴圈 — 針對各個 x 遍歷 y 之值 (0, 1, 2)
- 3 多重條件判斷 — 篩選符合 x > y 且 y % 2 == 0 的組合
- 4 表達式運算 — 符合條件者執行 x * y 並依序填入串列
↓
↓
↓
🔄 延伸學習:延伸學習:推導式中若有多個 if,其效果等同於使用 and 連接。