Nested loops & 2-D lists · Vòng lặp lồng nhau & Mảng 2 chiều
A loop inside a loop
- You can put one loop inside another loop.
- For every pass of the outer loop, the inner loop runs fully.
- So an outer of 2 and an inner of 3 runs the body 2 × 3 = 6 times.
Vòng lặp lồng trong vòng lặp
- Bạn có thể đặt một vòng lặp ở bên trong một vòng lặp khác.
- Với mỗi lượt chạy của vòng lặp ngoài, vòng lặp trong sẽ chạy xong trọn vẹn.
- Vì vậy, một vòng lặp ngoài là 2 và vòng lặp trong là 3 sẽ chạy thân code 2 × 3 = 6 lần.
for row in range(2):
for col in range(3):
print(row, col)
A list of lists
- A 2-D list is a list whose items are themselves lists.
- It models a grid or table: rows of columns.
- Reach one cell with two indexes:
grid[row][col].
Danh sách chứa danh sách
- Một danh sách 2 chiều là danh sách mà các phần tử của nó bản thân cũng là các danh sách.
- Nó mô hình hóa một lưới hoặc bảng: các hàng gồm các cột.
- Truy cập một ô cụ thể bằng hai chỉ số:
grid[row][col].
grid = [[1, 2], [3, 4]]
print(grid[0][1])
print(grid[1][0])
Loop over a grid
- Use a nested loop to visit every cell.
- The outer loop walks the rows; the inner loop walks the columns.
for row in grid:gives one row (a list) at a time.
Duyệt qua lưới
- Sử dụng vòng lặp lồng nhau để truy cập từng ô.
- Vòng lặp ngoài duyệt qua các hàng; vòng lặp trong duyệt qua các cột.
for row in grid:trả về một hàng (một danh sách) ở mỗi lần lặp.
grid = [[1, 2], [3, 4]]
for row in grid:
for value in row:
print(value)
In Cambridge pseudocode
- A 2-D list is the exam's 2-D array, written
ARRAY[1:rows, 1:cols].
Trong pseudocode Cambridge
- Một danh sách 2 chiều chính là mảng 2 chiều trong đề thi, được viết là
ARRAY[1:rows, 1:cols].
DECLARE grid : ARRAY[1:2, 1:3] OF INTEGER
FOR r ← 1 TO 2
FOR c ← 1 TO 3
OUTPUT grid[r, c]
NEXT c
NEXT r
Common mistakes
- The inner loop finishes all its turns for each single turn of the outer loop.
- Index a grid row first, then column:
grid[row][col].
Lỗi thường gặp
- Vòng lặp bên trong thực hiện hết tất cả các lần lặp cho mỗi lần lặp đơn của vòng lặp bên ngoài.
- Chỉ số hàng trước, sau đó đến cột:
grid[row][col].
Now you try
- Use a nested loop in each task.
- Press Check answer to test your code.
Bây giờ bạn thử
- Sử dụng vòng lặp lồng nhau trong mỗi bài tập.
- Nhấn Check answer (Kiểm tra câu trả lời) để thử mã của bạn.
A 2-D list is a grid · Mảng 2 chiều là một lưới
A 2-D list is rows of columns; reach a cell with grid[row][col]. · Mảng 2 chiều là các hàng của cột; truy cập một ô với grid[row][col].
Use a nested loop to print a 3-by-3 square of stars: three lines, each with three * characters. · Sử dụng vòng lặp lồng nhau để in ra một hình vuông sao kích thước 3×3: ba dòng, mỗi dòng có * ký tự.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Add up every number in the 2-D list grid with a nested loop. Store the total in total (the answer is 21). · Tính tổng tất cả các số trong danh sách 2-D grid bằng vòng lặp lồng nhau. Lưu tổng vào total (kết quả là 21).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Count how many cells in the 2-D list grid are equal to 0. Store the count in count (the answer is 3). · Đếm xem có bao nhiêu ô trong danh sách 2-D grid bằng với 0. Lưu kết quả đếm vào count (kết quả là 3).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.