Lập trình Python: for loop và nesting (phần 2)

Nesting (tiếp tục)

Thế còn về một for loop nested trong một for loop? Sau đây là một ví dụ:

>>> letters = ‘ABC’
>>> digits = ‘123’
>>> for letter in letters:
… for digit in digits:
… print(letter + digit)

A1
A2
A3
B1
B2
B3
C1
C2
C3

Code này sinh ra chuỗi kí tự hai kí tự, kí tự đầu tiên của nó là từ chữ và kí tự thứ hai của nó
là từ số.
Trên lần lặp đầu tiên của vòng lặp chữ (bên ngoài), letter tham chiếu đến ‘A’. Lần lặp này kéo theo
chạy vòng lặp số bên trong. Trong khi vòng lặp bên trong chạy, letter tham chiếu đến ‘A’. Trên
lặp đầu tiên của vòng lặp bên trong, digit tham chiếu đến 1, cái giải thích đầu ra A1. Trên lần
lặp thứ hai của vòng lặp bên trong, digit tham chiếu đến 2, va A2 là đầu ra. Trên lần lặp thứ ba
và cuối cùng của vòng lặp bên trong, digit tham chiếu đến 3, và A3 là đầu ra.
Chúng ta chưa làm xong. Chúng ta vừa đi qua chỉ một lần lặp của vòng lặp bên ngoài. Trên lần lặp
thứ hai của vòng lặp bên ngoài, letter tham chiếu đến ‘B’. Bây giờ ba lần lặp của vòng lặp bên trong
chạy lại một lần nữa, lần này với letter tham chiếu đến ‘B’. Cái này giải thích cho đầu ra B1, B2 và B3.
Cuối cùng, trên lần lặp thứ ba của vòng lặp bên ngoài, letter tham chiếu đến ‘C’, và vòng lặp
bên trong sinh ra C1, C2 và C3.
Concept check
Đầu ra của code sau là gì?

title = ‘The Escape’
total = 0
for char1 in title:
for char2 in title:
total = total + 1
print(total)
A. 10
B. 20
C. 100
D. This code produces a syntax error because two nested loops cannot both
use title

Trả lời: C. total bắt đầu bằng 0 và tăng thêm 1 sau mỗi lần lặp của
vòng lặp bên trong. Độ dài của ‘The Escape’ là 10. Do đó, vòng lặp bên ngoài có 10
lần lặp. Cho mỗi lần lặp đó, vòng lặp bên trong có 10 lần lặp.Do đó vòng lặp bên
trong có tất cả 10 * 10 = 100 lần lặp.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *