close

一、for

迴圈的部分也是跟R像得不得了(原本走R多進修了python)

1)

for <var> in <seq> : 敘述1

else : 敘述2

* else的概念跟上一篇一樣,如果沒有執行前面的敘述最後都會print出else的結果,else可以適時忽略

* in 前的<var>是變數名稱,後面的<seq>則是一個串列(list),簡單來說就是<var>的範圍,如果是for n in [1,2,3] ,則是n從1跑到3的迴圈(大概概念)

就像是sigma符號,,i從 i=1 開始,一直到 i=n 結束

 

舉例 :

g=[(1,2),(2,5),(7,8)]

for g1 in g :

  print (g1)

*不一樣的舉例方式,我先令g裡面分別是(1,2),(2,5),(7,8)的三元素(?<我每次解釋的方式都很詭異,請包涵>,有三個,迴圈裡我有g1,他會在list裡從第一個執行到最後一個

*一樣留意冒號及排版的問題,print的東西要用括號包起,我每次都會忘記導致出現error,他也蠻可愛的會自行補充說我是不是想打print()

 

2)

加了else的舉例

*要注意的是,range(5)是從0開始到5,因此是[0,1,2,3,4],不包含5(最後值)的意思,有點像是從0開始數5個數字的感覺

*如果0~4的數都數完也print出了,那for迴圈指令就結束執行下一行的else

如果是range(1,5),就是從1開始,到5結束 -> [1, 2, 3, 4] <到5結束,不會print出5>

如果是range(0,13,2),就是從0開始,到13結束,中間等差2(沒標示step默認是1) -> [0, 2, 4, 6, 8, 10, 12]

 

二、while

while 運算式 : 敘述1

else : 敘述2

概念一樣,如果條件符合變執行敘述1,反之則是else裡的敘述2

要注意的重點就是冒號啦!那真的很容易忘記耶

在這裡舉一個其他例子,我已經先令x=4了,print出x之後,x-=1,意思就是,x一直遞減到x=1為止。

 

 三、加入上篇if/else

排版的位置會影響print出的結果,本人覺得挺妙der

為了可以一起做比較,冒號後面直接打出沒有enter換行

1)

第一個例子

for n in range(1,6):
    print (n)
    if n==3:break
    else:print('done')

複習again,range(1,6)就是從1開始到6結束但不包含6,所以n會執行的內容就是[1,2,3,4,5],當然不熟悉range()語法也可改成for n in [1,2,3,4,5]是一樣的意思

注意排版,這樣子的排版像是for迴圈包了三行,解釋就會變成,

如果n是在[1,2,3,4,5]內,就執行迴圈裡的第一行 print(n),所以第一結果為'1',接著執行迴圈裡的第二行(也就是整體的第三行),如果n=3就停止,但此時的n是1,所以繼續下一行

不專業解釋,if else的概念就是,不是if,就是else,竟然n不是3了(n是3會執行if的敘述),就會執行else,所以print出'done'。依此類推,就變成

1 done

2 done

再來跑到n=3了,n=3符合n在[1,2,3,4,5]裡,因此print出n,接著就是for迴圈裡的第二行(也就是整體的第三行),if n==3:break,結果符合,所以break,整個迴圈到這裡結束,因為if條件符合,執行if後面的敘述,也就表示不會執行else的結果了

 

2)

第二個例子

for n in [1,2,3,4,5]:
    print(n)
    if n==3:break
else:print('done')

這時的else是獨立在for迴圈之外,也就是for迴圈要一直跑迴圈完才會到else的步驟

和前面敘述的一樣,所以n=3時符合if條件,所以break

 

 

##我是python初學者,其實這些是我的筆記,在書籍上我覺得重要or有時候會忘記的部分,單純想說公開讓大家一起學習並討論。

 

arrow
arrow
    文章標籤
    python 迴圈
    全站熱搜

    v777007 發表在 痞客邦 留言(0) 人氣()