PHP
Python

Trang chủ

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

Tìm hiểu vòng lặp while trong Python

Trong Python, việc sử dụng vòng lặp là điều không thể thiếu để xử lý các tác vụ lặp đi lặp lại một cách hiệu quả. Vòng lặp while trong Python đóng vai trò quan trọng trong việc tự động hóa các quy trình. Bài viết này sẽ cung cấp kiến thức nền tảng để bạn nắm vững cách vòng lặp while hoạt động, từ đó có thể áp dụng linh hoạt trong các dự án thực tế.

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

Vòng lặp while trong Python cho phép thực thi lặp đi lặp lại một hoặc một khối lệnh, miễn là điều kiện boolean được chỉ định vẫn đúng (true). Vòng lặp này bắt đầu bằng từ khóa while, theo sau là một biểu thức boolean và dấu hai chấm (:). Sau đó là một khối các câu lệnh được thụt vào.

Vòng lặp while trong Python là một câu lệnh giúp lặp đi lặp lại miễn biểu thức được chỉ định là đúng
Vòng lặp while trong Python là một câu lệnh giúp lặp đi lặp lại miễn biểu thức được chỉ định là đúng

Ở đây, statement(s) có thể là một câu lệnh đơn hoặc một khối các câu lệnh có cùng mức thụt lề. Điều kiện có thể là bất kỳ biểu thức nào và true là bất kỳ giá trị nào khác không (khác 0). Ngay khi biểu thức trở thành false, luồng điều khiển chương trình sẽ chuyển đến dòng ngay sau vòng lặp.

Nếu biểu thức không bao giờ chuyển thành false, vòng lặp sẽ tiếp tục chạy không ngừng, trừ khi bị dừng một cách cưỡng bức. Một vòng lặp như vậy được gọi là vòng lặp vô hạn, và đây là một tình huống không mong muốn trong chương trình máy tính.

Cú pháp của vòng lặp While trong Python

Cú pháp của một vòng lặp while trong ngôn ngữ lập trình Python như sau:

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

Lưu ý: Trong Python, tất cả các câu lệnh được thụt lề cùng một số lượng khoảng trắng sau một cấu trúc lập trình sẽ được coi là một phần của cùng một khối mã. Python sử dụng thụt lề làm phương pháp nhóm các câu lệnh.

Giải thích code:

  • Vòng lặp while bắt đầu bằng từ khóa while.
  • Theo sau while là một biểu_thức (một điều kiện, kết quả phải là True hoặc False).
  • Các câu_lệnh được thụt vào cùng cấp bên dưới while sẽ được thực thi liên tục khi biểu_thức vẫn là True.

Flowchart của vòng lặp while

Dưới đây là sơ đồ luồng mình họa cho cách thức hoạt động của vòng lặp while

Sơ đồ minh họa cho cách thức hoạt động của vòng lặp while
Sơ đồ minh họa cho cách thức hoạt động của vòng lặp while

Ví dụ 1

Ví dụ dưới đây minh họa cách vòng lặp while hoạt động. Vòng lặp sẽ tiếp tục thực thi các lệnh bên trong cho đến khi giá trị của biến count trở thành 5.

count = 0
while count < 5:
    count += 1
    print ("Lần lặp thứ {}".format(count))

print ("Kết thúc vòng lặp while")

Khi thực thi mã này, bạn sẽ nhận được kết quả sau:

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
Kết thúc vòng lặp while

Giải thích code:

  • count = 0: Câu lệnh này khởi tạo biến count và gán giá trị ban đầu bằng 0. Biến count được sử dụng như một biến đếm để theo dõi số lần lặp.
  • while count < 5:: Đây là câu lệnh bắt đầu vòng lặp while. Vòng lặp sẽ tiếp tục thực thi các lệnh bên trong chừng nào điều kiện count < 5 vẫn đúng.
  • count += 1: Câu lệnh này tăng giá trị của biến count lên 1 sau mỗi lần lặp. Tương đương với count = count + 1
  • print ("Lần lặp thứ {}".format(count)): Câu lệnh này in ra màn hình thông báo số thứ tự của lần lặp hiện tại.
  • print ("Kết thúc vòng lặp while"): Khi điều kiện count < 5 trở thành sai (tức count đạt giá trị bằng 5), vòng lặp while kết thúc và câu lệnh này sẽ được thực hiện. Nó thông báo rằng vòng lặp đã kết thúc.

Ví dụ 2

Dưới đây là một ví dụ khác về cách sử dụng vòng lặp while. Trong mỗi lần lặp, chương trình sẽ yêu cầu người dùng nhập dữ liệu. Vòng lặp sẽ tiếp tục thực hiện cho đến khi người dùng nhập vào một chuỗi không phải là số. Hàm isnumeric() sẽ trả về giá trị True nếu đầu vào là một số nguyên, ngược lại hàm sẽ trả về giá trị False.

var = '0'
while var.isnumeric() == True:
    var = "test"
    if var.isnumeric() == True:
       print ("Bạn đã nhập", var)
print ("Kết thúc vòng lặp while")

Khi chạy đoạn code trên, màn hình sẽ hiển thị kết quả tương tự như sau:

enter a number..10

Bạn đã nhập test

enter a number..100

Bạn đã nhập test

enter a number..543

Bạn đã nhập test

enter a number..qwer

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

Giải thích code:

  • var = '0': Khởi tạo biến var và gán cho var một giá trị ban đầu là chuỗi ‘0’.
  • while var.isnumeric() == True:: Đây là điều kiện để vòng lặp tiếp tục. Vòng lặp while sẽ tiếp tục thực hiện các câu lệnh bên trong cho đến khi biến var không còn là chuỗi số nữa (tức là hàm var.isnumeric() trả về False).
  • var = “test”: Trong vòng lặp này biến var được gán bằng chuỗi “test” cho dù người dùng có nhập giá trị nào đi nữa. Do vậy, if var.isnumeric() == True luôn sai do “test” không phải là chuỗi số nên câu lệnh print sẽ không bao giờ được chạy.
  • if var.isnumeric() == True: print (“Bạn đã nhập”, var): Câu lệnh này kiểm tra var có phải là chuỗi số hay không? Nếu var là chuỗi số thì in ra dòng chữ “Bạn đã nhập…” cùng với giá trị người dùng đã nhập
  • print (“Kết thúc vòng lặp while”): Câu lệnh này được thực hiện khi vòng lặp while kết thúc, tức khi var không còn là số nữa.

Vòng lặp while vô hạn trong Python

Một vòng lặp trở thành vòng lặp vô hạn khi điều kiện kiểm tra không bao giờ đạt giá trị False. Bạn cần phải cẩn trọng khi sử dụng vòng lặp while, vì có khả năng điều kiện của vòng lặp không bao giờ chuyển thành False, dẫn đến vòng lặp chạy không bao giờ kết thúc. Trường hợp này được gọi là vòng lặp vô hạn.

Vòng lặp vô hạn có thể hữu ích trong lập trình client/server, khi mà server cần chạy liên tục để các chương trình client có thể giao tiếp bất cứ khi nào cần.

Ví dụ về vòng lặp while vô hạn

Hãy xem xét ví dụ dưới đây để hiểu rõ hơn về cách hoạt động của vòng lặp vô hạn trong Python:

var = 1
while var == 1:  # Đây là vòng lặp vô hạn
    num = int(input("Nhập một số: "))
    print("Bạn đã nhập: ", num)
print("Tạm biệt!")

Khi chạy đoạn mã này, bạn sẽ thấy kết quả tương tự như sau trên màn hình:

Nhập một số: 20

Bạn đã nhập: 20

Nhập một số: 29

Bạn đã nhập: 29

Nhập một số: 3

Bạn đã nhập: 3

Nhập một số: 11

Bạn đã nhập: 11

Nhập một số: 22

Bạn đã nhập: 22

Nhập một số: Traceback (most recent call last):

  File “examples\test.py”, line 5, in <module>

    num = int(input(“Nhập một số: “))

KeyboardInterrupt

Giải thích code:

  • var = 1: Khởi tạo biến var với giá trị ban đầu là 1.
  • while var == 1:: Đây là nơi tạo ra vòng lặp vô hạn. Điều kiện kiểm tra var == 1 luôn đúng (vì giá trị của var không bao giờ thay đổi trong vòng lặp). Do đó, các câu lệnh bên trong vòng lặp while sẽ được thực thi liên tục, không có điểm dừng.
  • num = int(input("Nhập một số: ")): Hiển thị một thông báo yêu cầu người dùng nhập vào một số và chuyển đổi số đó sang dạng số nguyên rồi gán cho biến num.
  • print ("Bạn đã nhập: ", num): In ra màn hình số mà người dùng vừa nhập.
  • print("Tạm biệt!"): Câu lệnh này không bao giờ được thực hiện vì vòng lặp không bao giờ kết thúc (trừ khi có tác động từ bên ngoài – bấm tổ hợp Ctrl+C).

Vòng Lặp while-else trong Python

Python hỗ trợ việc sử dụng mệnh đề else kết hợp với vòng lặp while. Khi else được sử dụng với while, khối lệnh bên trong else sẽ được thực thi khi điều kiện của while trở thành false, trước khi luồng điều khiển chương trình chuyển đến các câu lệnh tiếp theo bên ngoài vòng lặp.

Flowchart vòng lặp while với mệnh đề else

Sơ đồ dưới đây thể hiện cách sử dụng mệnh đề else kết hợp với vòng lặp while.

flow chart vong lap while voi menh de else
Flowchart vòng lặp while với mệnh đề else

Ví dụ về vòng lặp while với mệnh đề else

Ví dụ sau minh họa việc kết hợp mệnh đề else với câu lệnh while. Cho đến khi giá trị của biến count nhỏ hơn 5, chương trình sẽ in ra số lần lặp. Khi count đạt giá trị 5, điều kiện của while trở thành false và câu lệnh in trong khối else được thực thi, trước khi luồng điều khiển được chuyển sang các câu lệnh tiếp theo trong chương trình chính.

count = 0
while count < 5:
    count += 1
    print ("Lần lặp thứ {}".format(count))
else:
    print ("Vòng lặp while đã kết thúc. Bây giờ đang ở trong khối else")
print ("Kết thúc chương trình")

Khi chạy đoạn code này, màn hình sẽ hiển thị kết quả như sau:

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 while đã kết thúc. Bây giờ đang ở trong khối else

Kết thúc chương trình

Giải thích code:

  • count = 0: Khởi tạo biến count với giá trị ban đầu là 0. Biến này đóng vai trò bộ đếm số lần lặp.
  • while count < 5:: Vòng lặp while sẽ tiếp tục thực thi các lệnh bên trong nếu điều kiện count < 5 vẫn đúng.
  • count += 1: Tăng giá trị của count lên 1 sau mỗi lần lặp, tương đương với count = count + 1.
  • print ("Lần lặp thứ {}".format(count)): In ra thông báo số lần lặp hiện tại.
  • else:: Khi điều kiện count < 5 không còn đúng (tức count đạt giá trị bằng 5), khối lệnh trong else sẽ được thực thi.
  • print ("Vòng lặp while đã kết thúc. Bây giờ đang ở trong khối else"): Thông báo cho biết vòng lặp while đã kết thúc và chương trình đang thực thi các câu lệnh trong khối else.
  • print ("Kết thúc chương trình"): In ra thông báo cuối cùng, cho thấy chương trình đã hoàn tất việc thực thi.

Các khối lệnh đơn trong Python

Tương tự như cú pháp của câu lệnh if, nếu mệnh đề while của bạn chỉ bao gồm một câu lệnh duy nhất, bạn có thể đặt câu lệnh đó trên cùng một dòng với tiêu đề while.

Ví dụ về các khối lệnh đơn trong Python

Ví dụ dưới đây minh họa cách sử dụng mệnh đề while một dòng:

flag = 0
while (flag): print ("Cờ này đúng là true!")
print ("Tạm biệt!")

Khi bạn chạy đoạn mã này, kết quả sẽ hiển thị như sau:

Tạm biệt!

Hãy thử thay đổi giá trị của flag thành 1 và chạy lại chương trình trên. Nếu bạn làm như vậy, chương trình sẽ rơi vào vòng lặp vô hạn và bạn cần nhấn tổ hợp phím CTRL+C để thoát.

Giải thích code:

  • flag = 0: Khởi tạo biến flag bằng 0.
  • while (flag): print ("Cờ này thực sự đúng!"): Nếu flag có giá trị khác 0 (tức là true), câu lệnh print sẽ được thực hiện. Vì flag = 0, điều kiện sai và vòng lặp không được chạy.
  • print ("Tạm biệt!"): Câu lệnh này in ra thông báo sau khi vòng lặp while đã kết thúc hoặc không thực hiện.
  • Giải thích trường hợp vòng lặp vô hạn: Khi bạn thay đổi flag thành 1, điều này tương đương với giá trị True. Vòng lặp while (flag) lúc này sẽ trở thành một vòng lặp vô hạn, vì điều kiện flag luôn luôn đúng, và câu lệnh print sẽ tiếp tục chạy. Để thoát khỏi vòng lặp vô hạn bạn phải tắt chương trình một cách cưỡng ép (ví dụ nhấn CTRL + C).

Lời kết

Chúng ta vừa cùng nhau khám phá chi tiết về vòng lặp while trong Python, từ cú pháp cơ bản đến những ứng dụng thực tế. Hy vọng những kiến thức này sẽ giúp bạn hiểu rõ hơn cách sử dụng vòng lặp để giải quyết các bài toán lặp trong lập trì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