0%

Python While迴圈

我們這次來看 while 迴圈吧 !!

While 迴圈怎麼寫?

1
count = 0
2
while count <= 5:
3
    print(count)
4
    count+=1
5
---------------執行結果---------------
6
0
7
1
8
2
9
3
10
4
11
5

只要 while 為 True,就會一直執行不會中斷,等到 count <= 5 為 False 就會停止。

用 Break 來中斷 While

如果我們希望 while 在某個情況下終止並跳出,但不知道何時發生,我們可以使用 break

下面為無限迴圈,要求 user input 一個字並 print, user input q 時則跳出迴圈:

1
while True:
2
    word = input("Please input a word [type q to quit]: ")
3
    if(word == 'q'):
4
        print('Break While loop!!')
5
        break
6
    print(word)
7
---------------執行結果---------------
8
Please input a word [type q to quit]: hello
9
hello
10
Please input a word [type q to quit]: 123
11
123
12
Please input a word [type q to quit]: q
13
Break While loop!!

使用 Continue

當我們用到某些狀況想要跳過,但是又不想跳出迴圈時,我們可以使用 continue

以下程式為輸入數字,奇數print,偶數就跳過:

1
while True:
2
    value = input("Please input a number [type q to quit]: ")
3
    if(value == 'q'):
4
        print('Break While loop!!')
5
        break
6
    number = int(value)
7
8
    if number % 2 == 0:
9
        print('Continue!!')
10
        continue
11
12
    print(number)
13
---------------執行結果---------------
14
Please input a number [type q to quit]: 12
15
Continue!
16
Please input a number [type q to quit]: 11
17
11
18
Please input a number [type q to quit]: q
19
Break While loop!!

使用 else 來檢查中斷

當我們使用 while 迴圈尋找一樣東西,找到並跳出迴圈;如果沒找到就印出訊息,就可以使用這個方法。
while 迴圈正常結束( 沒有 call break ),會把控制權給 else

1
numbers = [1,23,5]
2
3
index = 0
4
while index < len(numbers):
5
    number = numbers[index]
6
    if number % 2 == 0:
7
        print('Find even number',number)
8
        break
9
    index += 1
10
else:
11
    print('No even number found')  # break cannot run
12
---------------執行結果---------------
13
No even number found

由於 list 沒有偶數,所以 while 不會執行 break,所以跑完後直接到 else。

資料來源:

Python 學習筆記 系列
精通 Python:運用簡單的套件進行現代運算