Vòng lặp for (tiếp tục)
Xem lại ví dụ sau:
>>> secret_word = ‘olive’
>>> for char in secret_word:
… print(‘Letter: ‘ + char)
…
Letter: o
Letter: l
Letter: i
Letter: v
Letter: e
Một thực thi các phát biểu thụt dòng được nhắc đến như là sự lặp lại của vòng lặp. Sau đây là
một đi qua cái vòng lặp của chúng ta làm trên mỗi lần lặp:
+ Ở lần lặp đầu tiên, Python thiết lập char tham chiếu đến ‘o’, kí tự đầu tiên của ‘olive’. Nó
sau đó chạy khối loop, cái chứa chỉ lời gọi tới print. Khi char tham chiếu đến ‘o’, đầu ra được
sinh ra là chữ ‘o’.
+ Trên lần lặp thứ hai, Python thiết lập char tham chiếu tới ‘l’, kí tự thứ hai của ‘olive’. Nó
sau đó gọi print, cho ra letter ‘l’.
+ Quá trình này lặp lại ba lần nữa, mỗi lần cho mỗi kí tự còn lại trong ‘olive’.
+ Vòng lặp sau đó chấm dứt. Chúng ta không có code sau loop, vì vậy chương trình của chúng ta hoàn
thành chạy. Nếu có code thêm sau loop, thì thực thi sẽ tiếp tục với code đó.
Bạn có thể đặt nhiều phát biểu trong khối của for loop. Sau đây là một ví dụ:
>>> secret_word = ‘olive’
>>> for char in secret_word:
… print(‘Letter: ‘ + char)
… print(‘*’)
…
Letter: o
*
Letter: l
*
Letter: i
*
Letter: v
*
Letter: e
*
Bây giờ chúng ta có hai phát biểu thực thi trên mỗi lần lặp của loop: một cái cái cho ra chữ hiện
tại của string, và một cái cái cho ra một kí tự *.
Một for loop lặp qua các phần tử của một chuỗi, vì vậy độ dài của chuỗi thông báo cho chúng ta sẽ
có bao lần lặp. Hàm len lấy một chuỗi kí tự và trả về độ dài của nó:
>>> len(‘olive’)
5
For loop của chúng ta trên ‘olive’ sẽ vì vậy chứa 5 lần lặp:
>>> secret_word = ‘olive’
¶ >>> print(len(secret_word), ‘iterations, coming right up!’)
>>> for char in secret_word:
… print(‘Letter: ‘ + char)
…
5 iterations, coming right up!
Letter: o
Letter: l
Letter: i
Letter: v
Letter: eTôi gọi print với nhiều đối số, hơn là dấu nối, để tránh chuyển đổi độ dài thành một string.
Một for loop là cái được gọi là một vòng lặp xác định, nhắc đến ý tưởng rằng số lần lặp được
quyết định trước. Cũng có các vòng lặp không xác định, các lần lặp của nó phụ thuộc vào bất
thường của cái xảy ra khi chương trình của bạn chạy. Chúng ta sẽ nghiên cứu những cái đó ở
học phần sau.
Concept check
Cái gì là đầu ra của code sau:s = ‘garage’
total = 0
for char in s:
total = total + s.count(char)
print(total)
A. 6
B. 10
C. 12
D. 36
Câu trả lời là B. Cho mỗi kí tự trong ‘garage’, chúng ta thêm đếm của nó vào total. Có 2 g,
2 s, một r, 2 a (một lần nữa), 2 g (một lần nữa) và 1 e.