iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 3
0
Software Development

從0開始學習程式-Python系列 第 4

[Day7] 圈圈圓圓迴圈? 之 最後一次暑假

抓住暑假的尾巴吧!明天就要開學了!

可是可是...研究生沒有暑假嘛!我的最後一個暑假也結束了QQ
我們來學一下新的東西吧!

圈圈圓圓圈圈?還是團團圓圓?

那麼多圈,那麼多囗,到底想講什麼呢?我們今天要跟大家介紹的就是for迴圈

什麼是for迴圈?

可能我們有些動作一直反覆執行,這時候我們就可以透過迴圈來幫忙完成囉~然而在Python的語法中,沒有C語言是用{}來控制迴圈程式的範圍,則是利用「空格」來控制程式的階層(或者"位階"),每差一個階層,就需要「4個空格」
(當然也可以用「tab」但不建議使用,因為需要注意使用的notepad對於「tab」是否產生「4個空格」)。

想想看!如果我們想要逐次向5個朋友輪流打招呼,你可以怎麼做呢?

是不是在每一次進到一個迴圈的過程中,會再迴圈下進行「打招呼」這項動作,因此「打招呼」的位階就會在「for」之下

# Method 1
name_list=['Eason','Hank','Summer','Ryan','Rita']
for i in range(len(name_list)):
    print('Hello~ {}!'.format(name_list[i]))
# This is Output
Hello~ Eason
Hello~ Hank
Hello~ Summer
Hello~ Ryan
Hello~ Rita
  1. for (varible) in (sequence):這是是for迴圈基本的寫法,最後的「:」不要忘了,不然會出現錯誤!
  2. 迴圈進行時,會將序列(sequence)逐次逐項的指定到變數(varible),直到將序列中所有元素都用完。常見的寫法就是如上面範例所示。
  3. 序列(sequence)在python中可以是list, string, tuple。也因此for在這裡的行為會有點像C#中的foreach,我們這裡也利用上面例子,改寫一下也可以得到相同的結果!
# Method 2
name_list=['Eason','Hank','Summer','Ryan','Rita']
for name in name_list:
    print('Hello~ {}!'.format(name))

整理一下

  • Method 1
    利用index逐次逐項的將list中每一項都跑過一次。
    註:for迴圈下單純只是要做「重複性操作」有限次數,但變數(varible)不會影響迴圈內的操作時,也適用Method 1
  • Method 2
    檢查list中的每一項,直接拿取list每一項。

我們不一樣....

沒錯!在Pyhton裡面for就是跟別人不一樣,是可以搭配else做使用的!簡單而言,當序列已經用盡時,for會再進入到最後一次迴圈,此時就會執行else階層下的動作了!將Method 2改寫一下:

# Method 2 - improving
name_list=['Eason','Hank','Summer']
for name in name_list:
    print('Hello~ {}!'.format(name))
else:
    print('Hello everyone! It has been a long tome.')   
Hello~ Eason!
Hello~ Hank!
Hello~ Summer!
Hello everyone! It has been a long tome.

這個用法或許對已經會其他高階語言的使用者而言,可以說是比較特別,確實也是比較少用到的方式!
我們今天就到這裡吧!
但還是要給大家一個題去去思考一下囉:
Q. 有個list L=[1,2,3,4,5],如何由左到右逐項移除呢?

快去抓住暑假尾巴吧!我也要去抓住我最後一個暑假了!


上一篇
[Day 6] python 陣列和字串都幾?
下一篇
[Day 8] 如果我說沒有如果!Python 如果是什麼?
系列文
從0開始學習程式-Python32

尚未有邦友留言

立即登入留言