Trong Python, Vòng lặp While được sử dụng để thực hiện lặp lại một khối câu lệnh cho đến khi một điều kiện nhất định được thỏa mãn. Và khi điều kiện trở thành sai, dòng ngay sau vòng lặp trong chương trình được thực thi. Vòng lặp While thuộc loại lặp không xác định. Lặp lại không giới hạn có nghĩa là số lần vòng lặp được thực hiện không được chỉ định trước một cách rõ ràng.

Cú pháp:

while expression:
    statement(s)

statements đại diện cho tất cả các câu lệnh được thụt lề bởi cùng một số khoảng trắng ký tự sau khi một cấu trúc lập trình được coi là một phần của 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. Khi một vòng lặp while được thực thi, expression đầu tiên được đánh giá trong ngữ cảnh Boolean và nếu nó là true, phần thân của vòng lặp sẽ được thực thi. Sau đó, expression được kiểm tra lại, nếu nó vẫn đúng thì phần thân sẽ được thực thi lại và điều này tiếp tục cho đến khi biểu thức trở thành sai.

Ví dụ:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# Python program to illustrate  
# while loop  
count = 0
while (count < 3):      
    count = count + 1
    print("Hello Cafedev")  
  
print() 
  
# checks if list still 
# contains any element  
a = [1, 2, 3, 4] 
while a: 
    print(a.pop()) 

Kết quả:

Hello Cafedev
Hello Cafedev
Hello Cafedev

4
3
2
1

Làm việc của Vòng lặp Trong khi:

1. Một khối lệnh trong câu lệnh while

Cũng giống như khối if, nếu khối while bao gồm một câu lệnh duy nhất thì chúng ta có thể khai báo toàn bộ vòng lặp trong một dòng duy nhất. Nếu có nhiều câu lệnh trong khối tạo nên phần thân vòng lặp, chúng có thể được phân tách bằng dấu chấm phẩy (;).

Ví dụ:


# Python program to illustrate  
# Single statement while block  
count = 0
while (count < 5): count += 1; print("Hello Cafedev") 

Kết quả:

Hello Cafedev
Hello Cafedev
Hello Cafedev
Hello Cafedev
Hello Cafedev

2. Câu lệnh điều kiện và while

Các câu lệnh điều khiển vòng lặp thay đổi việc thực thi từ trình tự bình thường của nó. Khi việc thực thi rời khỏi một phạm vi, tất cả các đối tượng tự động được tạo trong phạm vi đó sẽ bị phá hủy. Python hỗ trợ các câu lệnh điều khiển sau.

  • Câu lệnh Continue: Nó trả lại điều khiển về đầu vòng lặp.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# Prints all letters except 'e' and 'f'  
i = 0
a = 'cafedev.vn'
  
while i < len(a):  
    if a[i] == 'e' or a[i] == 'f':  
        i += 1
        continue
    print('Current Letter :', a[i]) 
    i += 1

Kết quả:

Current Letter : c
Current Letter : a
Current Letter : d
Current Letter : v
Current Letter : .
Current Letter : v
Current Letter : n
  • Câu lệnh Break: Nó đưa quyền kiểm soát ra khỏi vòng lặp.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# break the loop as soon it sees 'e'   
# or 'f' 
i = 0
a = 'cafedev.vn'
  
while i < len(a):  
    if a[i] == 'e' or a[i] == 'f':  
        i += 1
        break
    print('Current Letter :', a[i]) 
    i += 1

Kết quả:

Current Letter : f
  • Câu lệnh Pass: Chúng tôi sử dụng câu lệnh pass để viết các vòng lặp trống. Pass cũng được sử dụng cho các câu lệnh, hàm và lớp điều khiển trống.

# An empty loop  
a = 'cafedev.vn'
i = 0
  
while i < len(a): 
    i += 1
    pass
print('Value of i :', i) 

Kết quả:

Value of i : 10

4. Câu lệnh while- else

Như đã thảo luận ở trên, vòng lặp while thực thi khối cho đến khi thỏa mãn một điều kiện. Khi điều kiện trở thành sai, câu lệnh ngay sau khi vòng lặp được thực hiện.
Mệnh đề else chỉ được thực thi khi điều kiện while của bạn trở thành sai. Nếu bạn thoát ra khỏi vòng lặp hoặc nếu một ngoại lệ được đưa ra, nó sẽ không được thực thi.

Lưu ý: Khối else ngay sau for / while chỉ được thực thi khi vòng lặp KHÔNG kết thúc bằng câu lệnh break.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# Python program to demonstrate 
# while-else loop 
i = 0 
while i < 4: 
    i += 1
    print(i)  
else: # Executed because no break in for  
    print("No Break\n")  
  
i = 0 
while i < 4:  
    i += 1
    print(i)  
    break
else: # Not executed as there is a break  
    print("No Break") 

Kết quả:

1
2
3
4
No Break

1

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!