range()
的參數range()
其實有多種用法,例如一個參數 range(7)
是從 0 依序列舉到 6,而兩個參數 range(2, 7)
則是從 2 依序列舉到 6。其實還可以放上第三個參數,代表列舉出來的數字間隔:
>>> for i in range(2, 9, 3):
>>> print(i)
2
5
8
可以看到這個迴圈從 2 開始輸出,每間隔 3 就輸出一次,直到 8 為止。善用 range()
的三個參數,能幫助我們列舉出各種數列。這時你可能會想,我們能用 range()
來列舉浮點數嗎?答案是不行:
>>> for i in range(0.2, 0.7, 0.1):
>>> print(i)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[1], line 1
----> 1 for i in range(0.2, 0.7, 0.1):
2 print(i)
TypeError: 'float' object cannot be interpreted as an integer
下面這一段訊息,就是當 Python 程式出現問題時,會顯示的錯誤訊息,閱讀錯誤訊息是身為一個工程師相當重要的能力。通常錯誤訊息會有個像是 ---->
的箭頭,用來指示哪行程式碼出了問題。最後一行會附上錯誤說明,這裡的描述是 TypeError: 'float' object cannot be interpreted as an integer
。
一開始閱讀這些錯誤訊息可能很吃力,但是不用擔心,可以借助 ChatGPT 來幫助你,只要將程式碼與錯誤訊息一同貼給 ChatGPT 即可,可以參考這份對話連結。
根據 ChatGPT 的解釋,在 range()
函式裡面,參數只能給整數。那如果我真的想要列舉浮點數怎麼辦呢?這時可以搭配除法:
>>> for i in range(2, 7):
>>> i /= 10
>>> print(i)
0.2
0.3
0.4
0.5
0.6
這樣就能列舉浮點數囉!
嘗試計算 1.3 + 1.6 + 1.9 + ... + 4.6 的總和。
完整的程式碼放在此 Colab 裡面供各位參考。