在這簡單講一下在Python中怎麼寫迴圈吧,如果你學過C/C++, C#, Java, or JavaScript等等,會發現,Python在迴圈的撰寫方式是不同的,另外,我也想講一下怎麼怎麼從容器取值然後去跑迴圈,不過容器現在還沒講到,不過有些底子的應該會看懂我在寫什麼XD,先來看看一個最基本的例子吧,如何寫一個從一加到一百的迴圈。
words = ['this', 'is', 'a', 'test']
for w in words:
print(w, len(w))
這是第一個example,就是把words arrays中的字和長度都印出來。
words = ['this', 'is', 'a', 'test']
for w in words[:]:
words.insert(0, w)
for w in words:
print(w, len)
這是第二個example,當我們需要對原始的array進行操作時,可以使用[:]的操作來copy array的值出來。
sum = 0
for i in range(101):
sum += i
print(sum)
print((1 + 100) * 100 / 2)
這個就是簡單的1加到100的example,range是由0~100,range在定義上他並不是回傳一個list回來,而是一個function當我們需要取下一位值時再取出,他也可以訂定,起始值,結束值和間隔值,如range(1, 10, 3),他就會依續回傳1, 4, 7,從1開始,不大於10的值,每次加3,間隔值也可以不設,預設是1。
另外,我們也常常需要使用index,這時我們可以使用另一個function enumerate() 。
words = ['this', 'is', 'a', 'test']
for idx, val in enumerate(words):
print(idx, val)
不過,國小數學有認真學的人,應該都知道有公式可以代,這時時間複雜度就由O(n)變成O(1)了,演算法算是對程式的效能非常重要的概念,而迴圈也通常是程式中最花費時間的部分,可以試著某些方式來進行改善,比如使用HashTable,二分法,Divide & Conqure, or Dynamic Programming等等。