PHP
Python

Trang chủ

Tìm hiểu về vòng lặp for-else 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
06/01/2025
10 phút đọc
Theo dõi Vietnix trên

Tìm hiểu về vòng lặp for-else trong Python

Vòng lặp for trong lập trình Python, cho phép thực hiện lặp đi lặp lại một khối code. Mặc dù quen thuộc, nhiều người vẫn chưa biết đến for-else, một cấu trúc kết hợp for với một khối else đặc biệt. Bài viết này sẽ giúp bạn khám phá cơ chế hoạt động và cách ứng dụng hiệu quả của for-else, mở rộng kỹ năng lập trình Python của bạn.

Vòng lặp for-else trong Python là gì?

Vòng lặp for-else trong Python là một cấu trúc điều khiển đặc biệt, vòng lặp này mang đến một cách thức thú vị để thực thi một đoạn mã nào đó chỉ khi vòng lặp for đã hoàn thành công việc của mình một cách trọn vẹn, không bị gián đoạn giữa chừng.

Vòng lặp for-else trong Python là một cấu trúc để giúp lập tình viên hoàn thành công việc dễ dàng hơn
Vòng lặp for-else trong Python là một cấu trúc để giúp lập tình viên hoàn thành công việc dễ dàng hơn

Vòng lặp for sẽ kết thúc một cách bình thường khi đã hoàn thành việc duyệt qua tất cả các phần tử. Ngược lại, vòng lặp có thể bị kết thúc sớm nếu gặp lệnh break. Lệnh break giống như một “cửa thoát hiểm” giúp chúng ta dừng vòng lặp ngay lập tức khi một điều kiện nào đó được đáp ứng.

Flowchart của vòng lặp for-else trong Python

Flowchart dưới đây sẽ giúp bạn hình dung luồng hoạt động của vòng lặp for-else một cách trực quan hơn:

Flowchart của vòng lặp for-else trong Python
Flowchart của vòng lặp for-else trong Python

Cú pháp của vòng lặp for-else trong Python

Dưới đây là cú pháp của vòng lặp for với khối else tùy chọn:

for variable_name in iterable:
    # Các câu lệnh bên trong vòng lặp
    .
    .
    .
else:
    # Các câu lệnh bên trong mệnh đề else
    .
    .

Ví dụ về vòng lặp for-else trong Python

Đoạn mã sau minh họa cách kết hợp mệnh đề else với một câu lệnh for trong Python. Vòng lặp sẽ in ra số lần lặp cho đến khi biến count nhỏ hơn 6. Khi count đạt đến 6, câu lệnh in trong khối else sẽ được thực thi trước khi quyền điều khiển được chuyển sang câu lệnh tiếp theo trong chương trình chính.

for count in range(6):
    print ("Lần lặp thứ {}".format(count))
else:
    print ("Vòng lặp for đã kết thúc. Bây giờ ở trong khối else")
print ("Kết thúc vòng lặp for")

Kết quả khi chạy đoạn code trên:

Lần lặp thứ 0

Lần lặp thứ 1

Lần lặp thứ 2

Lần lặp thứ 3

Lần lặp thứ 4

Lần lặp thứ 5

Vòng lặp for đã kết thúc. Bây giờ ở trong khối else

Kết thúc vòng lặp for

Giải thích chi tiết:

  • for count in range(6):: Vòng lặp for sẽ chạy 6 lần, với biến count lần lượt nhận các giá trị từ 0 đến 5 (do range(6) tạo ra dãy số từ 0 đến 5).
  • print ("Lần lặp thứ {}".format(count)): Trong mỗi lần lặp, dòng này sẽ in ra số lần lặp hiện tại.
  • else:: Vì vòng lặp for đã chạy hết tất cả các giá trị trong range(6) mà không gặp lệnh break, nên khối else sẽ được thực thi.
  • print ("Vòng lặp for đã kết thúc. Bây giờ ở trong khối else"): Câu lệnh này trong khối else sẽ được in ra khi vòng lặp for kết thúc một cách tự nhiên.
  • print ("Kết thúc vòng lặp for"): Sau khi khối else (hoặc nếu không có khối else), chương trình sẽ tiếp tục thực hiện các câu lệnh tiếp theo, trong trường hợp này là dòng in cuối cùng.

Cấu trúc for-else khi không có lệnh break

Như đã đề cập trước đó, khối else chỉ được thực thi khi vòng lặp kết thúc một cách bình thường, tức là khi không sử dụng lệnh break.

Trong ví dụ dưới đây, chúng ta sẽ sử dụng vòng lặp for-else mà không có lệnh break:

for i in ['T', 'P']:
   print(i)
else:
   # Lệnh trong khối else của vòng lặp
   # Không có lệnh break trong vòng lặp for, do đó phần else sẽ được thực thi ngay sau đó
   print("Khối else của vòng lặp For đã được thực thi thành công")

Khi chạy chương trình trên, bạn sẽ nhận được kết quả sau:

T
P
Khối else của vòng lặp For đã được thực thi thành công

Giải thích chi tiết:

  • for i in ['T', 'P']:: Vòng lặp for bắt đầu duyệt qua từng phần tử trong danh sách ['T', 'P'].
  • print(i): Trong mỗi lần lặp, biến i sẽ nhận giá trị của phần tử hiện tại trong danh sách, và dòng lệnh này sẽ in giá trị đó ra màn hình.
  • else:: Sau khi vòng lặp for đã duyệt qua tất cả các phần tử trong danh sách một cách trọn vẹn (tức là không có lệnh break nào khiến vòng lặp dừng sớm), thì khối lệnh bên trong else sẽ được thực thi.
  • print("Khối else của vòng lặp For đã được thực thi thành công"): Vì không có lệnh break nào trong vòng lặp for, vòng lặp đã hoàn thành nhiệm vụ duyệt qua tất cả các phần tử. Do đó, dòng lệnh này trong khối else sẽ được thực hiện, và bạn thấy dòng chữ “Khối else của vòng lặp For đã được thực thi thành công” được in ra.

Cấu trúc for-else với Llệnh break

Trong trường hợp vòng lặp bị chấm dứt một cách bị ép (bằng cách sử dụng lệnh break), thì khối lệnh else sẽ bị trình thông dịch “ngó lơ” và do đó, việc thực thi khối lệnh này sẽ bị bỏ qua.

Chương trình dưới đây minh họa cách mà điều kiện else hoạt động khi có lệnh break.

for i in ['T','P']:
   print(i)
   break
else:
   # Khối else của vòng lặp
   # Bị kết thúc sau lần lặp đầu tiên do lệnh break trong vòng lặp for
   print("Khối else của vòng lặp đã được thực thi thành công")

Khi chạy chương trình trên, kết quả sẽ như sau:

T

Giải thích chi tiết:

  • Ở lần lặp đầu tiên, biến i sẽ nhận giá trị là 'T'.
  • Lệnh print(i) sẽ in ra chữ T.
  • Ngay sau đó, chúng ta gặp lệnh break. Lệnh này giống như một “nút dừng khẩn cấp” cho vòng lặp. Khi break được thực thi, vòng lặp sẽ dừng lại ngay lập tức, không cần biết còn phần tử nào trong danh sách hay không.
  • Vì vòng lặp for bị dừng lại một cách “đột ngột” bởi lệnh break, nó không hoàn thành việc duyệt qua tất cả các phần tử một cách bình thường.
  • Do đó, khối lệnh else (khối lệnh chỉ được thực thi khi vòng lặp for chạy hết tất cả các phần tử mà không gặp break) sẽ không được thực thi.

Vòng lặp for-else với break và điều kiện if trong Python

Trong Python, bạn có thể kết hợp vòng lặp for với mệnh đề else, tạo thành cấu trúc for-else. Cấu trúc này hoạt động khá thú vị khi kết hợp thêm lệnh break và các điều kiện if.

Cụ thể như sau:

  • Vòng lặp for sẽ duyệt qua các phần tử trong một tập hợp (ví dụ: một list, một string, …).
  • Bên trong vòng lặp for, bạn có thể sử dụng các khối lệnh if để kiểm tra một điều kiện nào đó trên từng phần tử.
  • Nếu trong quá trình duyệt, lệnh break được thực thi (thường là khi một điều kiện if thỏa mãn), vòng lặp sẽ bị dừng lại ngay lập tức.
  • Ngược lại, nếu vòng lặp for chạy hết tất cả các phần tử mà không gặp lệnh break nào, thì khối lệnh trong mệnh đề else sẽ được thực thi.

Để làm rõ hơn, hãy xem xét đoạn code sau:

def positive_or_negative():
    for i in [5, 6, 7]:
        if i >= 0:
            print("Positive number")
        else:
            print("Negative number")
            break
    else:
        print("Loop-else Executed")

positive_or_negative()

Khi chạy đoạn code này, bạn sẽ thấy kết quả sau:

Positive number
Positive number
Positive number
Loop-else Executed

Giải thích chi tiết:

  • Hàm positive_or_negative(): Chúng ta định nghĩa một hàm để dễ dàng gọi và thử nghiệm.
  • Vòng lặp for i in [5, 6, 7]:: Vòng lặp này sẽ duyệt qua từng phần tử trong danh sách [5, 6, 7], lần lượt gán giá trị cho biến i.
  • Điều kiện if i >= 0:: Nếu giá trị của i lớn hơn hoặc bằng 0, câu lệnh print("Positive number") sẽ được thực hiện. Ngược lại, nếu i nhỏ hơn 0, đoạn code trong khối else (dưới if) sẽ được thực thi.
  • Khối else trong vòng lặp for: Khối else này chỉ chạy khi vòng lặp for đã duyệt qua tất cả phần tử mà không gặp lệnh break.
  • Lệnh break: Nếu trong quá trình vòng lặp có điều kiện nào đó làm cho lệnh break được gọi, thì vòng lặp sẽ bị dừng lại ngay lập tức, và khối else sẽ không chạy.

Lời kết

Vậy là chúng ta đã cùng nhau khám phá chi tiết về vòng lặp for-else trong Python, một lệnh giúp xử lý các tình huống đặc biệt trong lập trình. Hy vọng qua bài viết này, bạn đã hiểu rõ cách hoạt động và ứng dụng của nó. Hãy thử áp dụng vào các dự án thực tế của bạn để nâng cao kỹ năng lập trình Python

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