AddStack.py
學習重點:
串列
range()函式
for 迴圈
程式功能
請設計一個程式, 讓使用者輸入數字 n 後, 再計算 1 + 2 + 3 +⋯+ n 的值。
執行結果
list=[1,2,3,4,5],串列名稱=串列值。
for 迴圈變數 in 串列:
程式區塊
for 迴圈變數 in range(1,n+1):
程式區塊
串列可以用來簡化大量資料對變數的需求量。
每一個串列擁有一個識別名稱, 串列中的每一個資料稱為 元素 , 每一個元素相當於一個 變數 。
要存取串列中特定元素, 是以元素在串列中的位置做為索引值,語法如下:
串列中的元素資料型態 可以相同, 也可以不相同 。
要注意的是 Python 的 串列索引值從 0 開始 , 第一個元素的索引值是 0,第二個元素的索引值是 1, 第三個元素的索引值是 2, 以此類推。
索引值也可以是負數, 代表從串列最後算起第幾個元素,例如: 最後一個元素的索引值即為 -1 。
計次式迴圈中經常使用 range 函式來建立整數循序串列, 語法如下:
產生的串列是由 起始值開始( 預設值為 0) , 每次遞增 累加值( 預設值為 1) ,直到終止值的前一項。
舉例來說, range(1 , 5) 會產生一個從 1 開始, 小於 5 ( 不包含5) 的整數串列, 因此回傳的串列是 [1 , 2 , 3 , 4], 而若要產生從 1 開始, 20 結束的整數串列, 則要寫成 range(1 , 21)。
for 迴圈是一種處理重複步驟的語法, 它會從一個串列中逐一取出元素, 然後指定給迴圈變數, 因為串列中的元素個數, 即是重複迴圈中程式碼執行的次數, 所以稱為計次式迴圈。
for 和 in 之間的迴圈變數可以自己定義變數名稱, 而 in 後面接著一個序列, 在這個例子中, 我們使用了串列( list) , 它是序列的其中一種。 for 迴圈會依序從序列中取得元素, 並且將元素指定給前面自訂的迴圈變數, 再執行迴圈裡的內容, 直到序列每一元素都被取過為止, 語法如下:
舉例來說, 有一個數字串列 [1 , 2 , 3 , 4 , 5], 將此串列放在 in 的後方, 並使用 i 來做為迴圈的變數。 在程式區塊部分, 為了讓 Python 了解這個區塊是屬於迴圈的內容,所以要向內縮排。 程式區塊內可以寫入我們希望程式完成的指令, 例如: 若想輸出每一個迴圈中的迴圈變數值, 就可以寫成 print(i)。
另外, 因為這個串列是有規則的數列, 所以我們可以用 range 函式來簡化程式碼。
運算思維的發想
哪些函式可以讓使用者輸入數值 n 並轉換成整數?
累加就是求取一有規則的串列,其相加的總和。
花點時間思考,重複結構 for 迴圈是否可以處理累加的運算。
對於有規律地串列,能否使用 range() 函式代替?
演算法流程圖 VS Python 程式指令