iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
自我挑戰組

Python 學習整理系列 第 11

Day11. for loop 迴圈

  • 分享至 

  • xImage
  •  

重點:

  • 迴圈觀念分享
  • 如何使用 for 迴圈
    • 以執行次數執行
    • 以串列執行
    • 以字串執行

  • 為什麼要學習迴圈
    • 提高效率
    • 減少出錯的機率
  • 學習不同的執行迴圈的方式,可以更彈姓地使用迴圈

迴圈的基本介紹

  • 有時候我們需要不斷執行相同的程式碼,這時候就是迴圈登場的最佳時機了
  • 迴圈大致分為 for 和 while,兩種方法可以達成相同的目的,但會視情況選擇較適合使用的方法

for 迴圈運作的基本概念

  • 迴圈的範圍是以縮排定義
  • 依序取出序列內的內容做為變數,依此執行迴圈裡的內容

for 迴圈的基本概念

  • 迴圈的範圍是以縮排定義
  • 依序取出序列內的內容做為變數,依此執行迴圈裡的內容

for 迴圈的使用方式

  • 一般而言,可以透過3種方式使用 for 迴圈
    • 執行次數
    • 串列
    • 字串

以執行次數使用 for 迴圈

用法:

for 變數 in range(起始值,結束值,間隔值):
    迴圈內程式碼
  • 變數可隨意命名:例如:i,j,num,....,盡量使用好辨識的變數名稱
  • range 的使用方式
    • 由起始值開始計算,若無設定則預設為0
    • 計算至結束值前一位
    • 間隔值為計數間的間隔,若無設定則預設為1

range 的使用方式

用法:range(起始值,結束值,間隔值)

range(3)
#0, 1, 2

range(0, 3)
#0, 1, 2

range(1, 8, 2)
#1, 3, 5, 7

range(7, 2, -1)
#7, 6, 5, 4, 3

range(len('hello'))
#0,1,2,3,4

以執行次數使用 for 迴圈

for score in range(3):
    print(score)
#0
#1
#2
  • 在跑迴圈時,range(2),會產生0,1的數字序列,每一次的迴圈,變數score會分別為0,1,2

例1:判斷是否為歐洲國家

country = ['台灣', '日本', '英國', '馬來西亞']
europe = ['英國', '法國', '德國', '挪威']

for num in range(len(country)):
    if country[num] in europe:
        print(country[num] + '是歐洲國家')
    else:
        print(country[num] + '不是歐洲國家')
print('判斷完成')

#台灣不是歐洲國家
#日本不是歐洲國家
#英國是歐洲國家
#馬來西亞不是歐洲國家
#判斷完成

例2.計算考試及格人數

scores = input()
#因為成績跟成績是用空格分隔開,把原始輸入資料用空格分隔開
#不然會跑出錯誤ValueError: invalid literal for int() with base 10: ' '
scores = scores.split()
count = 0
for num in range(len(scores)):
    #因為輸入的成績是 str 字串,要轉換成 int 整數才能使用
    if int(scores[num]) >= 60:
        count += 1
print('及格人數:' + str((count)))

例3.在每個字元間加入驚嘆號

slogan = '哈搂你好嗎'
for num in range(len(slogan)):
    print(slogan[num], end='!')
#哈!搂!你!好!嗎!

以串列使用 for 迴圈:

用法:

for 變數 in 串列 :

     迴圈內程式碼

迴圈外程式碼
scores = [50, 100, 65, 75, 80,
          80, 90, 80, 55, 30,
          44, 65, 85, 14, 35,
          23, 45, 77, 88, 90]

count = 0
for score in scores:
    if int(score) >= 60:
        count += 1

print('及格人數:' + str(count))

#因為輸入的數字是int 要變成str 字串才能相加
#不然會跑出錯誤TypeError: can only concatenate str (not "int") to str

以字串使用 for 迴圈

用法:

for 變數 in 字串 :

    迴圈內的程式碼

迴圈外的程式碼
  • 迴圈會依序把字串中的內容取出,並指派給所訂定的變數
  • 迴圈跑的次數即字串長度
slogan = '哈搂你好嗎'
for i in slogan:
    print(i, end='!')
#哈!搂!你!好!嗎!
string = '和尚端湯上塔,塔滑湯灑湯燙塔。和尚端塔上湯,湯滑塔灑塔燙湯。'

s = '湯'
count = 0
for word in string:
    if word == s:
        count += 1
print('湯出現次數:', count)
#湯出現次數: 6

迴圈執行次數 程式指令
執行次數 for 變數 in range(起始值,結束值,間隔值)
串列 for 變數 in 串列
字串 for 變數 in 字串

參考資料
Yes


上一篇
Day 10. if - else 條件判斷
下一篇
Day12. while loop 迴圈
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言