PHP
Python

Trang chủ

Tìm hiểu chi tiết vòng lặp lồng nhau trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
08/01/2025
8 phút đọc
Theo dõi Vietnix trên

Tìm hiểu chi tiết vòng lặp lồng nhau trong Python

Vòng lặp lồng nhau không chỉ là một khái niệm lý thuyết mà còn là công cụ thiết yếu trong nhiều ứng dụng thực tế của Python. Bạn muốn biết cách duyệt ma trận, tạo ra các mô hình phức tạp, hay xử lý dữ liệu có nhiều lớp cấu trúc? Bài viết này sẽ giúp bạn hiểu rõ hơn về vòng lặp lồng nhau với các ví dụ minh họa để bạn áp dụng vào công việc của mình một cách nhanh chóng.

Vòng lặp lồng nhau trong Python là gì?

Vòng lặp lồng nhau (Nested Loops) trong Python được hiểu là một cấu trúc khi bạn viết một hoặc nhiều vòng lặp nằm bên trong một vòng lặp khác. Vòng lặp chính được xem là vòng lặp ngoài (outer loop), còn các vòng lặp nằm bên trong được gọi là vòng lặp trong (inner loop).

image 35
Tìm hiểu chi tiết vòng lặp lồng nhau trong Python 4

Ngôn ngữ lập trình Python cho phép sử dụng một vòng lặp bên trong một vòng lặp khác. Vòng lặp là một khối mã thực thi các chỉ thị cụ thể một cách lặp đi lặp lại. Có hai loại vòng lặp là forwhile. Chúng ta có thể tạo ra các vòng lặp lồng nhau bằng cả hai loại này.

Bạn có thể đặt bất kỳ loại vòng lặp nào vào bên trong bất kỳ loại vòng lặp nào khác. Ví dụ: vòng lặp for có thể nằm trong vòng lặp while và ngược lại.

Vòng lặp for lồng nhau trong Python

Vòng lặp for chứa một hoặc nhiều vòng lặp for khác bên trong được gọi là vòng lặp for lồng nhau. Vòng lặp for thường được dùng để duyệt qua các phần tử của một dãy (sequence), ví dụ như list, tuple hoặc string, và thực hiện cùng một thao tác lên mỗi phần tử đó.

Cú pháp của vòng lặp for lồng nhau

Cú pháp của một câu lệnh vòng lặp for lồng nhau trong Python như sau:

for bien_lap_ngoai in day_ngoai:
    for bien_lap_trong in day_trong:
        cac_cau_lenh(s)
    cac_cau_lenh(s)

Lưu ý: Đoạn code trên chỉ mô tả cú pháp tổng quát của vòng lặp for lồng nhau, chứ không phải một ví dụ cụ thể để chạy.

Giải thích code:

  • Vòng lặp ngoài for bien_lap_ngoai in day_ngoai:: Lặp qua các phần tử trong dãy day_ngoai.
  • Vòng lặp trong for bien_lap_trong in day_trong:: Nằm bên trong vòng lặp ngoài và lặp qua các phần tử của dãy day_trong.
  • cac_cau_lenh(s): Các câu lệnh được thực thi bên trong vòng lặp trong, hoặc bên trong vòng lặp ngoài sau khi vòng lặp trong hoàn tất.

Ví dụ về vòng lặp for lồng nhau

Chương trình sau đây sử dụng vòng lặp for lồng nhau để duyệt qua các danh sách months (tháng) và days (ngày).

months = ["jan", "feb", "mar"]
days = ["sun", "mon", "tue"]

for x in months:
    for y in days:
        print(x, y)

print("Tạm biệt!")

Khi đoạn mã trên được thực thi, kết quả sẽ hiển thị như sau:

jan sun

jan mon

jan tue

feb sun

feb mon

feb tue

mar sun

mar mon

mar tue

Tạm biệt!

Giải thích code:

  • months = ["jan", "feb", "mar"]: Khởi tạo một danh sách months chứa tên viết tắt của các tháng.
  • days = ["sun", "mon", "tue"]: Khởi tạo một danh sách days chứa tên viết tắt của các ngày trong tuần.
  • for x in months:: Vòng lặp for ngoài sẽ duyệt qua từng phần tử trong danh sách months. Trong mỗi lần lặp, phần tử đang được xét sẽ được gán cho biến x.
  • for y in days:: Vòng lặp for trong (lồng vào vòng lặp ngoài) sẽ duyệt qua từng phần tử trong danh sách days. Với mỗi lần lặp của vòng lặp ngoài, vòng lặp trong sẽ chạy hết tất cả các phần tử của danh sách days. Mỗi phần tử đang được xét được gán cho biến y.
  • print(x, y): In ra cặp giá trị của x (từ danh sách months) và y (từ danh sách days) trên cùng một dòng, tạo thành một cặp tháng-ngày.
  • print("Tạm biệt!"): Khi hai vòng lặp for kết thúc thì câu lệnh này sẽ được thực thi, báo hiệu rằng chương trình đã hoàn thành.

Vòng lặp while lồng nhau trong Pythom

Vòng lặp while chứa một hoặc nhiều vòng lặp while khác bên trong được gọi là vòng lặp while lồng nhau. Vòng lặp while được dùng để lặp lại một khối mã cho đến khi biểu thức boolean được chỉ định trở thành TRUE (ĐÚNG). Số lần lặp có thể không xác định trước được, phụ thu ộc vào giá trị của biểu thức điều kiện.

Cú pháp của vòng lặp while lồng nhau

Cú pháp cho một câu lệnh vòng lặp while lồng nhau trong Python như sau:

while biểu_thức:
    while biểu_thức:
        câu_lệnh(các_câu_lệnh)
    câu_lệnh(các_câu_lệnh)

Ví dụ về vòng lặp while lồng nhau trong Python

Chương trình dưới đây sử dụng vòng lặp while lồng nhau để tìm các số nguyên tố từ 2 đến 25:

i = 2
while(i < 25):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print (i, "là số nguyên tố")
   i = i + 1
print ("Tạm biệt!")

Khi thực thi đoạn code trên, kết quả hiển thị như sau:

2 là số nguyên tố

3 là số nguyên tố

5 là số nguyên tố

7 là số nguyên tố

11 là số nguyên tố

13 là số nguyên tố

17 là số nguyên tố

19 là số nguyên tố

23 là số nguyên tố

Tạm biệt!

Giải thích code:

  • i = 2: Khởi tạo biến i với giá trị ban đầu là 2. Biến i sẽ được dùng để duyệt qua các số từ 2 đến 24.
  • while(i < 25):: Đây là vòng lặp while ngoài. Vòng lặp này tiếp tục thực hiện cho đến khi i không còn nhỏ hơn 25.
  • j = 2: Bên trong vòng lặp ngoài, biến j được khởi tạo với giá trị là 2. Biến j sẽ dùng để kiểm tra xem số i có phải là số nguyên tố hay không.
  • while(j <= (i/j)):: Đây là vòng lặp while bên trong, vòng lặp này dùng để kiểm tra tính chia hết của i cho các số từ 2 đến căn bậc 2 của i. Vòng lặp tiếp tục cho đến khi j lớn hơn i/j
  • if not(i%j): break: Câu lệnh if này kiểm tra xem i có chia hết cho j hay không. Nếu chia hết (tức là phần dư bằng 0), thì not(i%j) sẽ trở thành True và lệnh break sẽ được thực hiện, thoát khỏi vòng lặp trong (vòng lặp while với j).
  • j = j + 1: Nếu i không chia hết cho j, biến j sẽ tăng lên 1.
  • if (j > i/j) : print (i, "là số nguyên tố"): Sau khi kết thúc vòng lặp trong, nếu j > i/j, có nghĩa là không có số nào nhỏ hơn căn bậc 2 của ii chia hết cho số đó, vậy thì i là số nguyên tố, nên ta in kết quả i ra màn hình.
  • i = i + 1: Kết thúc vòng lặp trong (nếu có hoặc không có lệnh break), ta tăng giá trị i lên 1 để kiểm tra số tiếp theo.
  • print ("Tạm biệt!"): Câu lệnh này in ra “Tạm biệt!” sau khi vòng lặp ngoài kết thúc.

Lời kết

Vậy là chúng ta đã cùng nhau tìm hiểu chi tiết về vòng lặp lồng nhau trong Python. Hy vọng những kiến thức này sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động và ứng dụng linh hoạt của vòng lặp này trong việc giải quyết các bài toán lập trình phức tạp. Mong rằng thông tin này hữu ích và có thể giúp bạn nâng cao kỹ năng lập trình Python của mình.

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn