為了分析這段代碼的輸出,我們可以逐步執(zhí)行代碼,并觀察 `a` 列表在每一步的變化。代碼如下:
```python
a = [1, 2, 3]
for i in range(len(a)):
if i == 0:
a[i] = i + 1
elif i == 2:
a[i] = i + 3
else:
a[i] = i - 1
print(a)
```
讓我們逐步分析每一步:
1. **初始狀態(tài)**:`a = [1, 2, 3]`
2. **第一輪迭代(i = 0)**:
- 條件 `if i == 0` 為真,因此執(zhí)行 `a[i] = i + 1`。
- 這導(dǎo)致 `a[0] = 0 + 1 = 1`。
- 現(xiàn)在 `a = [1, 2, 3]`。
- 然后進(jìn)行 `print(a)`,輸出 `[1, 2, 3]`。
3. **第二輪迭代(i = 1)**:
- 通過條件 `elif i == 2`,它是假的。
- 執(zhí)行 `else` 語句 `a[i] = i - 1`。
- 這導(dǎo)致 `a[1] = 1 - 1 = 0`。
- 現(xiàn)在 `a = [1, 0, 3]`。
- 然后進(jìn)行 `print(a)`,輸出 `[1, 0, 3]`。
4. **第三輪迭代(i = 2)**:
- 條件 `elif i == 2` 為真,因此執(zhí)行 `a[i] = i + 3`。
- 這導(dǎo)致 `a[2] = 2 + 3 = 5`。
- 現(xiàn)在 `a = [1, 0, 5]`。
- 然后進(jìn)行 `print(a)`,輸出 `[1, 0, 5]`。
因此,最終 `a` 的值是 `[1, 0, 5]`。故正確答案是選項 A: `[1, 0, 5]`。