iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

Python 學習整理系列 第 12

Day12. while loop 迴圈

  • 分享至 

  • xImage
  •  

重點

  • 如何使用 while 迴圈
  • for 迴圈以及 while 迴圈的比較

為什麼要學習 while 迴圈

  • 只學 for 迴圈是不夠的
    • 雖然許多迴圈都可以透過 for 完成
    • 某些情況下,用 while 迴圈更方便且較不容易出錯
    • 有時候,我們無法確切知道迴圈要跑幾次才要停止,
    • 某些條件後迴圈就可以停止,這時候就不適合使用 for 迴圈

while 判斷條件:
        迴圈內第一行程式碼
        迴圈內第二行程式碼
        迴圈內最後一行程式碼
迴圈外的程式碼
  • 寫 while 指令要注意的是判斷條件跟變數狀況,才不會形成無限迴圈
i = 0
while i < 5:
    print(i)
    i += 1
# 0
# 1
# 2
# 3
# 4
  • 當 i < 5 成立時,才會執行迴圈的指令,當條件不成立時,迴圈才會停止。

例1. 計算 1 至指定數字的平方和

end = 5
i = 1
square_sum = 0
while i <= end:
    square_sum += i**2
    i += 1
print(square_sum)
# 55

例2.

num = 1
summation = 0
while num < 20:
    if num % 2 == 1:
        summation += num
    else:
        summation -= num
    num += 1
print(summation)
# 10

例3.計算字元出現的次數

string = '和尚端湯上塔,塔滑湯灑湯燙塔。和尚端塔上湯,湯滑塔灑塔燙湯。'
i = '湯'
num = 0
count = 0
while num < len(string):
    if string[num] == i:
        count += 1
    num += 1
print('湯出現次數:' + str(count))

例4.使用 while 迴圈計算平均分

scores = [50, 60, 45, 85, 60, 77, 90,
          44, 55, 15, 100, 25, 65, 44,
          15, 20, 75, 90, 66, 45, 78,
          44, 41, 80, 96, 84, 50, 51]
num = 0
total = 0
while num < len(scores):
    total += scores[num]
    num += 1
average = total / len(scores)
print('平均分數:', average)
# 平均分數: 58.92857142857143

例5.使用 for 迴圈計算平均分

scores = [50, 60, 45, 85, 60, 77, 90,
          44, 55, 15, 100, 25, 65, 44,
          15, 20, 75, 90, 66, 45, 78,
          44, 41, 80, 96, 84, 50, 51]
num = 0
total = 0
while num < len(scores):
    total += scores[num]
    num += 1
average = total / len(scores)
print('平均分數:', average)
# 平均分數: 58.92857142857143

例6.讓使用者輸入數字值到猜中預設答案

ans = 55
num = int(input())
while num != ans:
    if num > ans:
        print('猜太高了')
    else:
        print('猜太低了')
    num = int(input())
print('恭喜,猜中了')

for 迴圈以及 while 迴圈之比較

  • 在大部分的狀況,for 迴圈跟 while 迴圈都可以達成相同的目的,但選擇適合的方法可以降低錯誤發生的頻率。
    • 當已知迴圈圈數時,適合使用 for 迴圈
    • 當未知迴圈圈數時,適合使用 while 迴圈

整理回顧:

  • while 迴圈以縮排定義迴圈範圍,並以判斷條件作為是否繼續迴圈的依據
  • for 迴圈以及 while 迴圈的比較

| | for | while
------------- | --------------------------------
|使用時機 |可以知道迴圈數,處理資料為序列|未知迴圈數
|注意事項 |起始值、終點值、迴圈數 |判斷條件、變數更新


上一篇
Day11. for loop 迴圈
下一篇
Day13. 巢狀結構、break & continue
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言