Vòng lặp while
trong Python có tác dụng gì? Cú pháp và cách sử dụng vòng lặp while
ra sao? Đó là những nội dung mà chúng ta sẽ tiếp cận trong bài học Python này.
Vòng lặp được sử dụng trong lập trình để lặp lại một đoạn code cụ thể, while
cũng là một trong số đó. Trong Python, while
được dùng để lặp lại một khối lệnh, đoạn code
khi điều kiện kiểm tra là đúng. while
dùng trong những trường hợp mà chúng ta không thể dự đoán trước được số lần cần lặp là bao nhiêu.
Cú pháp của while trong Python
while dieu_kien:
Khối lệnh của while
Trong vòng lặp while, dieu_kien
sẽ được kiểm tra đầu tiên, nếu nó là True, thì khối lệnh của vòng lặp sẽ được thực thi. Sau một lần lặp, dieu_kien
sẽ được kiểm tra lại
và quá trình lặp này sẽ chỉ dừng cho đến khi điều kiện là False.
Trong Python mọi giá trị khác 0 đều là True, None và 0 được hiểu là False. Đặc điểm này có thể dẫn đến trường hợp là while
có thể không chạy vì ngay lần lặp đầu tiên dieu_kien
đã False. Khi đó, khối lệnh của while
sẽ bị bỏ qua và phần code dưới khối lệnh while
sẽ được thực thi.
Sơ đồ vòng lặp while trong Python
Giống như if hay vòng lặp
for, khối lệnh của while
cũng được xác định thông qua thụt lề. Khối lệnh bắt đầu với thụt lề đầu tiên và kết thúc với dòng không thụt lề đầu tiên liền sau khối.
Ví dụ: In lần lượt các số nhỏ hơn 8
#In và đếm các số từ 0 tới 8:
count = 1
n = 0
while [n < 8]:
print ['Số thứ', count,' là:', n]
n = n + 1
count = count + 1
print ["Hết rồi!"]
Với đoạn code này, ta sẽ tăng dần count và in giá trị của n cho đến khi n không còn nhỏ hơn 8 nữa. Kết quả khi chạy lệnh trên ta có:
Số thứ 1 là: 0
Số thứ 2 là: 1
Số thứ 3 là: 2
Số thứ 4 là: 3
Số thứ 5 là: 4
Số thứ 6 là: 5
Số thứ 7 là: 6
Số thứ 8 là: 7
Hết rồi!
Lưu ý:
- Hãy nhớ tăng biến điều kiện trong
while
[trong ví dụ trên là n], nếu không vòng lặp sẽ trở thành vòng lặp vô hạn - tiếp tục lặp mãi mãi. - Vòng lặp
while
yêu cầu biến trong điều kiện phải là giá trị xác định, trong ví dụ trên biến lập chỉ mục lặp là biến n, chúng ta phải đặt giá trị ban đầu cho nó là 1.
Ví dụ: Tính tổng các số
n = int[input["Nhập n: "]] #Nhập số n tùy ý
tong = 0 #khai báo và gán giá trị cho tong
i = 1 #khai báo và gán giá trị cho biến đếm i
while i Enter > nhập 3... đến 5 vẫn không thấy tong được in. Đây là một trường hợp của lệnh vô hạn. Để thoát khỏi vòng lặp vô hạn bạn nhấn phím Ctrl + C, khi đó sẽ xuất hiện dòng thông báo
"Traceback..." như bên trên.Lệnh break trong while
Với câu lệnh break
, chúng ta có thể dừng vòng lặp ngay cả khi điều kiện của while
là True:
Ví dụ: Thoát vòng lặp khi i bằng 3:
i = 1
while i < 6:
print[i]
if i == 3: #kiểm tra điều kiện xem i bằng 3 hay chưa
break
i += 1 #cập nhật biến đếm
Kết quả của ví dụ trên là i sẽ được in từ số 1 đến số 3, sau khi in xong số 3 gặp lệnh if và vòng lặp sẽ dừng lại [không in tiếp số 4, 5]:
1
2
3
Lệnh continue trong while
Câu lệnh continue
trong while
sẽ khiến cho vòng
lặp bỏ qua lần lặp hiện tại và tiếp tục chạy ở lần lặp tiếp theo.
Ví dụ: In các số từ 1 đến 6 ngoại trừ số 3
i = 0
while i < 6:
i += 1
if i == 3:
continue
print[i]
Trong 2 vòng lặp đầu tiên i bằng 1 và 2 thì vòng lặp vẫn chạy lệnh in. Tới vòng lặp tiếp theo, phù hợp với điều kiện if
i bằng 3 thì sẽ chạy lệnh continue
=> bỏ qua vòng lặp đó để chạy thẳng sang vòng lặp kế sau nó [in số 4, 5, 6].
Kết quả đầu ra:
1
2
4
5
6
Kết hợp while với else
Giống như vòng lặp
for
, bạn cũng có thể kết hợp else
với while
. Trong trường hợp này, khối lệnh của else
sẽ được thực hiện khi điều kiện của while
là False.
Ví dụ: Minh họa việc sử dụng while kết hợp với else
dem = 0
while dem < 3:
print["Đang ở trong vòng lặp while"]
dem = dem + 1
else:
print["Đang ở trong else"]
Ở đây ta sử dụng biến dem để in chuỗi "Đang ở trong vòng lặp while" 3 lần. Đến lần lặp thứ 4, điều kiện của while
trở thành False, nên phần lệnh của else
được thực thi. Kết quả là:
Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong else
Ví
dụ: Đếm và in các số nhỏ hơn 2
n = 0
while n < 2:
print[n,"nhỏ hơn 2"]
n = n + 1
else:
print [n,"không nhỏ hơn 2"]
Giá trị ban đầu của n ta gán là 0, tăng dần giá trị của n và in, lặp cho đến khi n không nhỏ hơn 2, nếu n bằng hoặc lớn hơn 2 thì vòng lặp kết thúc và khối lệnh else
sẽ được thực thi, kết quả là:
0 là nhỏ hơn 2
1 là nhỏ hơn 2
2 không nhỏ hơn 2
Lệnh while trên một dòng
Nếu vòng lặp while
chỉ có một lệnh duy nhất thì có thể viết trên cùng một dòng với while
như ví dụ này:
Ví dụ: Vòng lặp vô hạn với while một dòng
lệnh
flag = 1
while [flag]: print ['Flag đã cho là True!"]
Print ["Hẹn gặp lại!"]
Đây là một vòng lặp vô hạn, hãy nhớ tổ hợp phím Ctrl + C trước khi bạn nhấn F5 hay Run, nếu không nó sẽ chạy từ ngày này qua ngày khác đấy =]].
Kiểm tra kiến thức vòng lặp while trong Python
Hết rồi, vòng lặp while
cũng không phức tạp lắm nhỉ. Trong phần tiếp theo chúng ta sẽ tìm hiểu về lệnh break
và continue
trong Python, các bạn đón đọc nhé.