Sunday, January 19, 2025

[Python] Lesson 11 – Nested loops in Python

-

Nested loops là một cấu trúc lặp lại trong Python, trong đó một vòng lặp nằm trong vòng lặp khác. Mỗi lần vòng lặp bên ngoài được thực hiện, vòng lặp bên trong sẽ được thực hiện đầy đủ. Dưới đây là ba ví dụ minh họa cho nested loops:

Ví dụ 1: Tạo một ma trận vuông

# Tạo ma trận vuông 3x3
matrix = []
for i in range(3):
    row = []
    for j in range(3):
        row.append(i * j)
    matrix.append(row)

# In ma trận
for row in matrix:
    print(row)

Trong ví dụ này, chúng ta sử dụng nested loops để tạo ra một ma trận vuông với kích thước 3×3. Chúng ta sử dụng vòng lặp bên trong để tạo ra các giá trị trong mỗi hàng của ma trận. Sau đó, chúng ta sử dụng vòng lặp bên ngoài để thêm các hàng này vào ma trận và in ma trận.

Ví dụ 2: Tìm ước chung lớn nhất của hai số

# Tìm ước chung lớn nhất của hai số
a = 24
b = 36
gcd = 1
for i in range(1, min(a, b) + 1):
    if a % i == 0 and b % i == 0:
        gcd = i

print("GCD of", a, "and", b, "is", gcd)

Trong ví dụ này, chúng ta sử dụng nested loops để tìm ước chung lớn nhất của hai số ab. Chúng ta sử dụng vòng lặp bên trong để kiểm tra xem mỗi số từ 1 đến giá trị nhỏ nhất giữa ab có phải là ước chung của cả hai số hay không. Nếu có, chúng ta cập nhật giá trị của gcd. Cuối cùng, chúng ta in ra giá trị của gcd.

Ví dụ 3: Tính tổng của các phần tử trong một mảng hai chiều

# Tính tổng của các phần tử trong một mảng hai chiều
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
sum = 0
for row in arr:
    for element in row:
        sum += element

print("Sum of all elements:", sum)

Đoạn code trên tính tổng của tất cả các phần tử trong một mảng hai chiều được biểu diễn bởi biến arr.

Đầu tiên, giá trị ban đầu của tổng được khởi tạo bằng 0.

Sau đó, hai vòng lặp for được sử dụng để duyệt qua tất cả các phần tử trong mảng hai chiều arr. Vòng lặp đầu tiên được sử dụng để duyệt qua tất cả các hàng trong mảng hai chiều, và vòng lặp thứ hai được sử dụng để duyệt qua tất cả các phần tử trong mỗi hàng.

Mỗi lần lặp, giá trị của phần tử đang được xét được thêm vào tổng sum. Cuối cùng, tổng sum được in ra màn hình để hiển thị tổng của tất cả các phần tử trong mảng hai chiều arr.

Ví dụ 4: In bảng cửu chương bằng nested loops

for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i} x {j} = {i*j}")
    print()

Kết quả:

1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36

5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45

6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54

7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63

8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72

9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

Trong đó, vòng lặp for đầu tiên duyệt qua các số từ 1 đến 9 (bao gồm cả 1 và 9) và được đại diện bởi biến i. Vòng lặp for thứ hai cũng duyệt qua các số từ 1 đến 9 và được đại diện bởi biến j.

Mỗi lần lặp, đoạn code in ra kết quả của phép nhân giữa i và j, kèm theo dòng chữ “x” và dấu “=” để tạo ra các phần tử trong bảng cửu chương. Để định dạng chuỗi in ra, đoạn code sử dụng f-string.

Sau khi vòng lặp for thứ hai hoàn thành việc in ra kết quả của phép nhân giữa i và j, một dòng trống được in ra bằng cách sử dụng hàm print() mà không có đối số. Điều này để tạo khoảng cách giữa các hàng trong bảng cửu chương.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories