2017年7月4日 星期二

Python ê 基礎 -- for loop

除了 while 圈圈 (while loop),有另外一種 loop, 號做 for 圈圈(for loop)。伊嘛是會使佇仝一段 code 重覆行。毋過,伊有較媠氣的用法佮寫法,是 while loop 比--

for-statements 的用法,上基本是: 佇名單(Lists) 內巡田水,一个一个點名:


>>> animals = ['cat', 'parrot', 'dog']
>>> for w in animals:
...     print(w)
...
cat
parrot
dog


animals 是一个 List, for loop 逐擺 uì animals 中央(tiőng) 一个出來,佇 w 變數--裡,才入去 for-statement 內底共伊印--出來。

這馬,你想欲印數字 1 到 100,你欲uì 1 開始,用手指頭仔建立一--咧 [ 1, 2, ..., 100] 的 List? 這个時陣,range() 這的函數就好用阿:

#!/usr/bin/python3
for i in range(1,101):
    print(i)

range(1, 101) 會自動產生一咧 1 到 100 的整數名單。愛注意: 101 無佇名單--裡。

range() 和 for --起來,就成做好用的工具。比如講,你想干焦雙數,你會使用

#!/usr/bin/python3
for i in range(2, 101, 2):
    print(i)

伊就會印出 2 到 100 的雙數。

若是 range(1, 101, 3),就是 1, 4, 7,..,100。
若是 range(0, 101, 5),就是 0, 5, 10,.., 100。

簡單講,range(start, end, diff) 就是產生數學講个 "算數(sǹg-siàu)數列(sòo-lia̍t)" (華語: 等差級數, 英文:Arithmetic progression)。

若是干焦 range(100),伊會自動起頭設做 0,產生 0 到 99 的整數名單。

若講較頂真个,毋是干焦 Lists,所有 "有順序的型態" (Sequence Type),攏會使囥佇 for loop。Lists 本身嘛是一種 Sequence Type。後擺你會學著閣較濟 Sequence Type 的資料型態。現此時咱除了 Lists, 就干焦知影字串(Strings) 嘛是一款 Sequence Type:

sammy = 'Parrot is the boss of cats'

for letter in sammy:
   print(letter)

你會看著字母,一字一字印--出來。


while loop 和 for loop,理論上會當完全互相取代。所以,while 會使用的 break 來跳出箍輾,用 continue 來躘過紲--落來的 code,直接跳轉去 while 起頭,for loop 嘛仝款會使用 break,continue

毋過,佇和像 List 這種 "有順序的型態" (Sequence Type) 的物件鬥陣使用時,你會當感受著 for loop 加真屧貼

沒有留言:

佇 Linux 來看GPX 檔案

最近定定有戶外活動。使用𤆬路機 (GPS) 來記錄行過的路線。普通我記錄路線,攏是用手機仔抑是專門个𤆬路機,罕得用電腦來看。 毋過,"仙人拍鼓有時錯,跤步踏差啥人無"。有一擺我無細膩,袂記得共一擺活動的路線收煞起來,閣直接開始記錄下一擺的活動,按呢共幾落...