農會 資訊管理類程式設計110 年第 20 題單選題
以下為Python語言程式片段,請問迴圈共被執行幾次?
for i in range(1,50,7):
print(i)
C正確答案
Python的range(start, stop, step)會生成從start開始、小於stop、每次加step的序列,本題共執行7次。
為什麼答案是 C
正確答案。生成的序列為1, 8, 15, 22, 29, 36, 43,共7個值,執行7次。
考點:引數意義考點:隨機幹擾考點:序列生成考點:邊界陷阱
載入中…
完整詳解
Pro · 無限重點 Python的range(start, stop, step)會生成從start開始、小於stop、每次加step的序列,本題共執行7次。
秒解公式:(stop - start) / step 並無條件捨去。本題 (50 - 1) / 7 = 49 / 7 = 7 次。
逐選項分析
A引數意義✕
50是range的stop引數值,並非迴圈實際執行的次數,屬於直覺幹擾。
B隨機幹擾✕
350是50與7的乘積,屬於毫無根據的隨意運算幹擾選項,不具程式邏輯。
C序列生成✓ 正確
正確答案。生成的序列為1, 8, 15, 22, 29, 36, 43,共7個值,執行7次。
D邊界陷阱✕ 陷阱
若誤以為邊界值50會被包含,或在計算(50-1)/7後錯誤進位,就會誤選8次。
range() 函式引數解析
| 引數 | 意義 | 本題對應值 |
|---|
| start | 起始值(包含) | 1 |
| stop | 終止值(不包含) | 50 |
| step | 間距/步進值 | 7 |
range() 的 stop 引數是「不包含」的邊界值(即 < stop)。許多考生會直覺將 50 代入計算或誤以為會執行到 50,導致多算一次而誤選 8。