Vòng lặp while trong Python



Vòng lặp while trong Python thực thi lặp đi lặp lại các lệnh hoặc phần thân của vòng lặp miễn là điều kiện đã cho là true. Khi điều kiện là false, thì điều khiển sẽ thoát ra khỏi vòng lặp. Dưới đây là cú pháp của vòng lặp while trong Python:

while bieu_thuc:
   cac_lenh

Ở đây, cac_lenh có thể là một lệnh đơn hoặc một khối lệnh. Bieu_thuc có thể là bất kỳ biểu thức nào. Điều đáng chú ý về vòng lặp while là vòng lặp này có thể không chạy. Bởi vì khi điều kiện được kiểm tra là false, thì phần thân vòng lặp sẽ bị bỏ qua và lệnh đầu tiên ngay sau vòng lặp sẽ được thực thi.

Ví dụ minh họa cho vòng lặp while trong Python:

 count = 0
while (count < 9):
   print 'So thu tu cua ban la:', count
   count = count + 1print "Good bye!"

Khi code trên được thực thi sẽ cho kết quả:

So thu tu cua ban la: 0
So thu tu cua ban la: 1
So thu tu cua ban la: 2
So thu tu cua ban la: 3
So thu tu cua ban la: 4
So thu tu cua ban la: 5
So thu tu cua ban la: 6
So thu tu cua ban la: 7
So thu tu cua ban la: 8
Good bye!

Trong ví dụ trên, gồm lệnh print và lệnh tăng, khối code sẽ được thực thi lặp đi lặp lại tới khi count không còn nhỏ hơn 9 nữa. Với mỗi lần lặp, giá trị của count được hiển thị và sau đó được tăng thêm 1.

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

Một vòng lặp vô hạn là vòng lặp mà điều kiện của nó là luôn true. Bạn phải đặc biệt chú ý khi sử dụng các vòng lặp while bởi vì tồn tại khả năng là điều kiện của nó sẽ không bao giờ false, tức là làm cho vòng lặp không bao giờ kết thúc.

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

 var = 1
while var == 1 :  # Lenh nay tao mot vong lap vo han
   num = raw_input("Hay nhap mot so  :")
   print "So da nhap la: ", numprint "Good bye!"

Khi code trên được thực thi sẽ cho kết quả:

Hay nhap mot so  :20
So da nhap la:  20
Hay nhap mot so  :29
So da nhap la:  29
Hay nhap mot so  :3
So da nhap la:  3
Hay nhap mot so between :Traceback (most recent call last):
  File "test.py", line 5, in 
    num = raw_input("Hay nhap mot so :")
KeyboardInterrupt

Ví dụ trên là một vòng lặp vô hạn, và để thoát khỏi nó thì bạn cần nhấn phím CTRL+C.

Sử dụng lệnh else với vòng lặp while trong Python

Python cho phép bạn có một lệnh else được sử dụng kết hợp với một lệnh vòng lặp. Khi else được sử dụng với một vòng lặp while, thì lệnh else được thực thi khi điều kiện là false.

Ví dụ sau minh họa sự kết hợp của lệnh else với một lệnh while để in các số, miễn là số này nhỏ hơn 5, nếu không lệnh else được thực thi.

 count = 0
while count < 5:
   print count, " la nho hon 5"
   count = count + 1
else:
   print count, " la khong nho hon 5"

Khi code trên được thực thi sẽ cho kết quả:

0 la nho hon 5
1 la nho hon 5
2 la nho hon 5
3 la nho hon 5
4 la nho hon 5
5 la khong nho hon 5

Suite: lệnh while trên một dòng đơn

Tương tự như cú pháp của lệnh if, nếu mệnh đề while của bạn chỉ gồm một lệnh đơn, thì nó có thể được đặt trên cùng một dòng như là header của lệnh while này, ví dụ:

 flag = 1while (flag): print 'Flag da cung cap nay la true!'print "Good bye!"

Bạn không nên thử ví dụ này vì nó là một vòng lặp vô hạn và bạn cần nhấn CTRL+C để thoát.


vong_lap_trong_python.jsp