1 of 41

Lab 4

台大語言所

陳品而

2 of 41

Python Basics (ii)

3 of 41

  • while 迴圈
  • for 迴圈
  • file handling (如果有時間的話)

4 of 41

1 2 3

什麼是迴圈?

迴圈

▶️ 一種控制結構,允許多次執行相同code

▶️ 針對不同對象處理重複任務

5 of 41

1 2 3

迴圈

6 of 41

1 2 3

迴圈

7 of 41

1 2 3

有哪些迴圈?

  • while loop
  • for loop

迴圈

8 of 41

1 2 3

while 迴圈

  • 滿足特定條件時,執行code,再重複此步
  • 要讓該條件最終變 False
  • 否則會無限迴圈

while

9 of 41

1 2 3

count = 0

while count < 5:

count += 1

print(count)

while

執行code

滿足特定條件

10 of 41

11 of 41

1 2 3

while count < 5:

count += 1

print(count)

while

count 最初是 0

看 while count <5

→ 通過條件 (因為 0<5)

→ count 再加 1

→ print 出來

→ 跑完第一圈,count 最終變成 1

輸出:1

12 of 41

1 2 3

while

跑完第一圈後,count 變成 1

輸出:2

再次看 while count <5

→ 通過 (因為1<5)

→ count 再加 1

→ print 出來

→ 跑完第2圈,count 最終變成 2

while count < 5:

count += 1

print(count)

13 of 41

1 2 3

while

跑完第二圈後,count 變成 2

輸出:3

while count < 5:

count += 1

print(count)

再次看 while count <5

→ 通過 (因為2<5)

→ count 再加 1

→ print 出來

→ 跑完第3圈,count 最終變成 3

14 of 41

1 2 3

while

跑完第三圈,count 變成 3

再次看 while count <5

→ 通過 (因為3<5)

→ count 再加 1

→ print 出來

→ 跑完第4圈,count 最終變成 4

輸出:4

while count < 5:

count += 1

print(count)

15 of 41

1 2 3

while

跑完第四圈,count 變成 4

再次看 while count <5

→ 通過 (因為4<5)

→ count 再加 1

→ print 出來

→ 跑完第5圈,count 最終變成 5

輸出:5

while count < 5:

count += 1

print(count)

16 of 41

1 2 3

while count < 5:

count += 1

print(count)

while

跑完第五圈後,count 變成 5

再次看 while count <5

不通過 (因為 5 不小於 5)

不執行裡面的code

17 of 41

1 2 3

while count < 5:

count += 1

print(count)

while

總計輸出:

1

2

3

4

5

18 of 41

1 2 3

while 迴圈

  • 動圖裡 a += 2 目的:

條件最後會變 False,否則會無限迴圈

while

(a = a+2)

19 of 41

1 2 3

for 迴圈

  • 用於可迭代對象(如 list, tuple, dict)
  • 讓該對象的每個元素執行相同的code

for

20 of 41

1 2 3

for

21 of 41

1 2 3

fruits = ["蘋果", "香蕉", "柳丁"]

for fruit in fruits:

print(fruit)

for

輸出:

蘋果

香蕉

柳丁

蘋果

香蕉

柳丁

22 of 41

1 2 3

fruits = ["蘋果", "香蕉", "柳丁"]

for fruit in fruits:

print(fruit)

for

完整遍歷列表 (fruits) 一次就結束迴圈

23 of 41

1 2 3

break:在特定條件下,立即結束迴圈

for

24 of 41

當 fruit 是香蕉時,

停止迴圈

25 of 41

1 2 3

continue

當某一次迴圈遇到 continue

就忽略那一次迴圈(剩下的)code

直接開始下一次迴圈

for

26 of 41

27 of 41

1 2 3

pass

不執行任何操作,當作佔位符

for

28 of 41

1 2 3

pass

  • 不執行任何操作,通常用作占位符

for

1 2 3

29 of 41

1 2 3

巢狀迴圈

▶️ 一個迴圈內部包含另一個迴圈

▶️ 處理多維數據結構

for

30 of 41

1 2 3

for

31 of 41

32 of 41

1 2 3

range()

  • 產生一個整數範圍序列,通常用於 for 迴圈
  • 用法:range(start, stop, step)

for

1 2 3

33 of 41

1 2 3

range(start, stop, step)

  • 計數從start開始,預設從 0 開始
  • 計數到stop結束,但不包括stop

for

range(0, 5) 是 [0, 1, 2, 3, 4]

1 2 3

range(5) 等於 range(0, 5)

34 of 41

1 2 3

range(start, stop, step)

  • 計數從start開始,預設從 0 開始
  • 計數到stop結束,但不包括stop
  • step:步長,預設為1

for

1 2 3

35 of 41

1 2 3

for i in range(3):

print(i)

for

1 2 3

range(0, 3)

36 of 41

1 2 3

for i in range(3):

print(i)

for

輸出:

0

1

2

1 2 3

37 of 41

1 2 3

for i in range(3):

print(i)

for

for id in [0, 1, 2]:

print(id)

1 2 3

38 of 41

1 2 3

for i in range(3):

print(i)

for

for id in [0, 1, 2]:

print(id)

1 2 3

輸出:

0

1

2

輸出:

0

1

2

39 of 41

1 2 3

for i in range(3):

print(i)

for

for id in [0, 1, 2]:

print(id)

1 2 3

一個 list 中,

元素們的索引也是 0 開始!

40 of 41

1 2 3

for

1 2 3

  • range() 可以產生一個整數序列

▶️ range(3) 產生 iterator: range(0,3) 可以遍歷 [0, 1, 2]

  • list 的每個元素都有索引(該元素在 list 中的位置)

▶️ ['a', 'b', 'c'] 對應的索引是 [0, 1, 2]

他們可以 iterate 一樣的東西🐶

41 of 41

1 2 3

Python

1 2 3