iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
0
自我挑戰組

Kaggle的解題挑戰 2018版系列 第 16

[Day17] Kaggle的解題挑戰 2018版 - Python 迴圈 (2)

  • 分享至 

  • xImage
  •  

昨天講了幾個迴圈的基本應用,但漏講了一些也是蠻重要的東西,這些東西也是非常的重要的,主要就是continue, break, 和else,其實continue和break在Java或是其它語言也是存在的,但是else這東西在迴圈中還蠻特別的,一般的概念是使用在if的條件判斷句型中,不過迴圈裏的角色,就讓我來說明一下。

先來帶一個簡單的example,簡單的說,就是當我們執行到了break的時候,就會脫離當下的迴圈,而continue就會結束這個iteration,換句話說就是跳回for起始的地方,執行下一個循環。

for n in range(2, 100):
    for x in range(2, n):
        if n % x == 0:
            print(n, 'equals', x, "*", n//x)
            break
    else:
        print(n, 'is a prime number')

這個是一個尋找2到100的數,有那些數是質數的example,也順便帶出else的應用,else是指當break為被執行時,這個迴圈在結束時,就會去執行else的程式區塊。另外,他也常拿來用在exception handle的try catch句型上,同樣的,也是當沒有catch被執行時,就會執行else,類似Java的finally的句型。

這是一個while加continue的example

n = 2
while n < 10:
    if n % 2 == 0:
        print(n, 'is a even number')
        n+=1
        continue
    print(n, 'is not a event number')
    n+=1
else: 
    print('finish while loop')

另外提一下,另一個關鍵字pass,在Python中因為語法的關系,其實是沒辮法讓你寫一個空白的條件判斷,然後不做任何事,所以我們需要寫pass,另外也可以寫應用在function和class的定義中。

if 1 == 2:
    pass
else:
    print('pass example')

補充一下,之前也都沒有提到這類關於條件運算在Python中的定義,比如在這裏n % 2 == 0,其實這個東西在不同語言也是有不同的寫法,雖然看的懂,不過還是做一下記錄,這將會是明天的題目XD,個人覺得位元運算子也是蠻重要的,不過,這部分應該不會特別的去再進行講解,在Kaggle解題中,目前使用到的機率不高,有需要再去查資料了。

在參考資料中,有更多好用的語法,我覺得在將來一定是有機會用到的,但我就不講太多了,各位可以直接參考這些好用的function,我直接列出關鍵字就好,像是items, reversed, sorted, zip等等。

參考資料:
Looping Techniques


上一篇
[Day16] Kaggle的解題挑戰 2018版 - Python 迴圈 (1)
下一篇
[Day18] Kaggle的解題挑戰 2018版 - Python 條件運算子
系列文
Kaggle的解題挑戰 2018版30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言