Vòng lặp while
Thuộc phần Nền tảng cơ bản trong hành trình Python của Coddy. Bài học 36 trên 77.
Vòng lặp while khác với vòng lặp for. Vòng lặp for cho phép chúng ta lặp qua một range cụ thể, còn vòng lặp while cho phép tiếp tục lặp chừng nào một điều kiện nhất định còn thỏa mãn.
Để dùng vòng lặp while, hãy viết:
while condition:
codeCode chỉ chạy nếu điều kiện là True.
Điều kiện thường được tạo bằng toán tử so sánh như <= (nhỏ hơn hoặc bằng), >= (lớn hơn hoặc bằng), < (nhỏ hơn), > (lớn hơn) hoặc == (bằng). Vòng lặp tiếp tục chạy miễn là phép so sánh đó cho kết quả True và dừng ngay khi kết quả chuyển thành False.
Bên trong thân vòng lặp, bạn thường cần cập nhật biến đang được kiểm tra. Bạn có thể làm việc này bằng các toán tử gán kết hợp như += (cộng rồi gán), -= (trừ rồi gán), *= (nhân rồi gán) hoặc /= (chia rồi gán). Ví dụ, x *= 2 là cách viết tắt của x = x * 2. Nếu không cập nhật biến, điều kiện sẽ không bao giờ thay đổi và vòng lặp sẽ chạy mãi.
Có nhiều trường hợp mà vòng lặp while có thể giải quyết vấn đề, nhưng vòng lặp for thì không.
Ví dụ, hãy xem xét bài toán sau:
Tìm lũy thừa nhỏ nhất của 2 lớn hơn một số đã cho.
Để giải bài này, ta sẽ dùng vòng lặp while để liên tục nhân lũy thừa hiện tại của 2 với 2 cho đến khi nó lớn hơn số đã cho:
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)Ở đây, power_of_two <= number là điều kiện sử dụng toán tử so sánh, còn power_of_two *= 2 cập nhật biến sau mỗi lần lặp bằng toán tử gán kết hợp. Khi power_of_two lớn hơn number, điều kiện trở thành False và vòng lặp dừng lại.
Thử thách
Người mớiViết một chương trình nhận một đầu vào là số thực (float).
Dùng vòng lặp while để chia đầu vào cho 2 chừng nào số đó lớn hơn hoặc bằng 3.5.
In ra số đầu tiên nhỏ hơn 3.5.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
4Các toán tử, phần 2
Toán tử logic, phần 1Toán tử logic, phần 2Ôn tập: logic đơn giảnToán tử logic, phần 3Toán tử logic, phần 47Máy tính chia hóa đơn
Lời chàoNhận đầu vào8Vòng lặp
Vòng lặp forVòng lặp whileBreakContinueÔn tập: Giai thừaHàm rangeVòng lặp lồng nhauÔn tập: Đầu vào động11Kiến thức cơ bản về danh sách
Khai báo danh sáchTruy cập phần tử trong danh sáchChỉnh sửa danh sáchPhương thức của danh sáchÔn tập: danh sách sản phẩmÔn tập: danh sách đảo ngượcTuple14Trình quản lý chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Python online