iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
AI/ ML & Data

From Python Beginner To AI Engineer系列 第 9

如何重複做一件事情?

  • 分享至 

  • xImage
  •  

上一篇文章最後的練習第一題是「計算從 1 加到 5 的總和是多少?」,按照我們已經學會的語法,寫出來的答案如下:

>>> n = 0
>>> n += 1
>>> n += 2
>>> n += 3
>>> n += 4
>>> n += 5
>>> n
15

寫個五六行可能還行,但是第二題的「計算從 2 乘到 9 的乘積是多少?」:

>>> n = 2
>>> n *= 3
>>> n *= 4
>>> n *= 5
>>> n *= 6
>>> n *= 7
>>> n *= 8
>>> n *= 9
>>> n
362880

天啊,寫完都快要睡著了!要是今天改從 2 乘到 100 那豈不是太可怕了 😱

迴圈

不用擔心,機器的優點在於擅長處理重複的事情,這種重複又單調的加法乘法,可以用**迴圈 (Loop)**的概念來處理,例如:

>>> n = 0
>>> for i in range(1, 6):
>>>     n += i
>>> n
15

這段程式碼冒出了幾個新東西,讓我們來細細探究。

先來看看 range(1, 6) 是什麼,這東西會從 1 開始列舉所有數字,一路列舉到小於 6 的數字為止,也就是 1, 2, 3, 4, 5 這樣。

因為 6 並不小於 6,所以 6 不在列舉的數字清單裡面。

這個 for ... in ... 的語法被稱為 For 迴圈 (For Loop),可以用來拜訪 range(1, 6) 列舉出來的所有數字。

因此當程式執行到第二行時,會從 range(1, 6) 裡面取第一個數字出來放在變數 i 裡面,也就是 i = 1,然後執行第三行 n += i,也就是 n += 1

執行完 n += i 後,會回到第二行,再取一個數字出來,也就是 i = 2,然後再執行一次 n += i,一直反覆這樣的循環,直到 1, 2, 3, 4, 5 每個數字都被取出來用過一次為止。

所有數字都被取出來之後,就會離開這個迴圈,並執行最後一行顯示計算出來的總和結果。

這樣的語法是不是很方便呢?只要把 range(1, 6) 改成 range(1, 101) 就可以計算從 1 累加到 100 的結果囉!

在 For 迴圈裡面,第二行程式碼前面似乎多了四個空格,這些空格被稱為縮排 (Indent),縮排對 Python 的程式碼架構至關重要,哪些程式碼要在 For 迴圈裡面執行,哪些不用,都是根據縮排來決定的。縮排的空格數量不一定要是四個,但每一行的空格數量都要一樣:

>>> for i in range(10):
>>>   i += 1   # 也可以只空兩格
>>>    i += 2  # 錯誤寫法,前一行空兩格,下一行也要跟著空兩格

自我練習

現在使用 For 迴圈的語法,練習以下題目:

  1. 計算從 1 加到 100 的總和是多少?
  2. 計算從 2 乘到 100 的乘積是多少?

完整的程式碼放在此 Colab 裡面供各位參考。


上一篇
什麼是複合賦值?
下一篇
這些小括號是什麼?
系列文
From Python Beginner To AI Engineer31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言