CH8-2 while迴圈


while 迴圈概論


1.for 迴圈用於知道需要執行的次數,而while迴圈常用於不知道確切執行次數的情境下。透過每次判斷是否符合條件,若符合則進入迴圈。
2.每次執行完都要更新條件避免進入無窮迴圈,無法跳出迴圈。

while 條件:
    程式執行區塊
    更新條件

透過迴圈來累加 1-10 的數字:

#for 迴圈:
total = 0
for num in range(0,11):
  total += num
  print(total)
#55


#while迴圈:
num = 1
result = 0

while num <= 10:
  result += num
#當 num 小於等於 10 時會進到迴圈裡面執行,若不符合則離開迴圈。
#代表result = result + num
  num += 1 
#此為更新條件,num每次都以級數累加直到10,若缺乏條件則result會不斷加總1。
print(result)

練習:while 迴圈數字累加器


設計一個程式可以讓使用者輸入希望從多少數字開始累加到多少數字(三個使用者輸入變數,一個為起始值,一個為結束值,一個為間隔值),然後使用 while 迴圈印出累加結果(含結束值)。舉例:使用者輸入 0、10 和 1 代表從 0 累加到 10,間隔為 1,結果應該為 55。

start_num = int(input("Enter the start number: "))
end_num = int(input("Enter the end number: "))
interval_num = int(input("Enter the interval number: "))

result =0

while start_num <= end_num:
  result += start_num
  start_num += interval_num
  print(result, start_num)
print(result)

無窮迴圈


當條件永遠成立時會進到無窮迴圈(有可能是忘記更新條件,要小心使用),會持續執行程式區塊,有些情況會造成電腦程式當機。while 後面若條件一直是 True 代表會一直進入區塊中無法跳出,一般不建議使用,建議 while 區塊內需要明確定義更新條件避免無窮迴圈一直執行到電腦資源耗盡。

若要避免無窮迴圈記得加上 break 跳出條件,例如:counter 變成 10 後跳出迴圈。

counter = 0
while True:
    counter += 1
    print(counter)
    if counter >= 10:
        break
# 10
print(counter)

break關鍵字使用

當我們想要在迴圈某時跳出迴圈或是略過某次迴圈時可以分別搭配 if...else 使用 breakcontinue 關鍵字來控制何時忽略或是跳出迴圈:

result = 0
for i in range(6):
#迭代變數i遍歷迭代列表[0,6]
  if i == 3:
  # 迭代變數i到3時停止迴圈
    break
  result += i

print(result)

#3

練習:加強版迴圈數字累加器(break)


設計一個程式可以讓使用者輸入希望從多少數字開始累加到多少數字(三個使用者輸入變數,一個為起始值,一個為結束值,一個為跳出值),然後使用 for 迴圈印出累加結果(含結束值)。舉例:使用者輸入 0 和 10 以及 6 代表從 0 累加到 10,但遇到 6 則跳出,結果應該為 15。

start_num = int(input("Enter the start number: "))
end_num = int(input("Enter the end number: "))
break_num = int(input("Enter the break number: "))

result =0
for i in range(start_num, end_num+1):
  if i == break_num:
    break
  result += i
print(result)

continue 關鍵字使用


continue 代表跳過這次迴圈運算,直接到下一次迴圈:

#跳過3
for i in range(6):
    if i == 3:
        continue
    print(i)
    result += i
# 印出累加結果
print(result)

練習:加強版迴圈數字累加器(continue)


請設計一個程式可以讓使用輸入希望從多少數字開始累加到多少數字(三個使用者輸入變數,一個為起始值,一個為結束值,一個為忽略值),然後使用 for 迴圈印出累加結果(含結束值)。舉例:使用者輸入 0 和 10 以及 1 代表從 0 累加到 10,但遇到 1 則跳過,結果應該為 54。

start_num = int(input("Enter the start number: "))
end_num = int(input("Enter the end number: "))
continue_num = int(input("Enter the continue number: "))

result =0
for i in range(start_num, end_num+1):
  if i == continue_num:
    continue
  result += i
print(result)

練習:印出婚宴參加名單人數


你的好朋友即將結婚,身為工程師的你負責統計出席名單。請使用 for 迴圈計算出席的人數。

invite_list = {
    'Jack': True,
    'Leo': True,
    'Mike': False,
    'Jane': False,
    'Andy': True,
    'Ben': False
}

invited_num = 0
for key,value in invite_list.items():
  if value == True:
    invited_num += 1
    print(key,value)...顯示true的key & value

print(invited_num)...顯示true的總人數

#顯示true的key & value,並顯示true的總人數
#Python






你可能感興趣的文章

[MTR04] W2 D9 String 類型的內建函式

[MTR04] W2 D9 String 類型的內建函式

Redux middleware、CSR vs SSR、SSR  介紹

Redux middleware、CSR vs SSR、SSR 介紹

關於 React 小書:渲染陣列裡的各個項目

關於 React 小書:渲染陣列裡的各個項目






留言討論