Python 資優數學 – 為什麼 for 不叫repeat?

最近課程來到了迴圈。大多的程式語言都用for loop來執行重複的動作,看似直覺的東西,似乎不是每個人都覺得它親切。課堂上有同學問了一個很有趣的問題:for的中文意思是什麼?

這個考倒我了,雖然我回答了:這是for each …in the ..的意思喔

下課後我帶著一點好奇去考古找答案:在Fortran裡沒有for這個詞(如果你也學過Fortran,我們年紀應該不會差太多😆), 想要重複做一件事情就直接跟電腦說 “do”,例如計算1到10的累加:

m = 0
do k=1, 10
  m = m + k
end do
write(*,*)'1+2+...+10=',m

如果改以Python語言,同樣的任務,可以這麼寫:

m = 0
for k in range(1, 11):
    m = m + k
print('1+2+...+10=',m)

無論哪種語言,其實想表達的都是:do “m = m + k” for each k in the set {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Python似乎還是比較接近英文的口語

那那…for在這邊的中文到底是什麼呢?我還是沒回答到這個問題。老實說難倒我了,英文好的同學可以幫忙回答一下 😂