Bài 21. Câu lệnh lặp while
CÂU LỆNH LẶP WHILE
SAU BÀI HỌC NÀY EM SẼ:
Cho các việc được ghi trong cột A và cột B của bảng sau:
| Vận động viên chạy 20 xung quanh sân vận động. vòng | Vận động viên chạy nhiều xung quanh sân vận động trong thời gian 2 tiếng: vòng |
| Em làm 5 bài tập thầy cô giao về nhà. | Em làm các bài tập về nhà đến giờ ăn cơm thì dừng lại. |
| Em đi lấy 15 xô nước giúp mẹ. | Em xách các xô nước giúp mẹ cho đến khi đầy nước. thùng |
Đối với mỗi hàng, em hãy cho biết công việc được lặp đi lặp lại là gì? Điều kiện để dừng công việc là gì? Số lần thực hiện việc lặp giữa hai cột có gì khác nhau?
LỆNH WHILE
Hoạt động
Quan sát đoạn chương trình sau, giải thích kết quả in ra.
k = 1
S = 0
while k < 100:
S = S + k
k = k + 7
print(S)
750
Câu lệnh được thực hiện cho đến khi <điều kiện> False.
Trong đó <điều kiện> là biểu thức lôgic. Khi thực hiện lệnh, Python sẽ kiểm tra <điều kiện>, nếu đúng thì thực hiện <khối lệnh>, nếu sai thì kết thúc lệnh while.
Trong đoạn chương trình ở Hoạt động 1, lệnh lặp sẽ dừng khi k ≥ 100 và giá trị S nhận được là tổng 1 + 8 + 15 + ... + 99.
Ví dụ 1. Quan sát đoạn chương trình sau và cho biết S là giá trị của biểu thức toán học nào?
k = 1
S = 0
while k*k < 100:
S = S + k*k
k = k + 1
Giải thích: Đoạn chương trình tính tổng 1^2 + 2^2 + ... + k^2 với điều kiện k^2 < 100. Vậy S chính là tổng bình phương các số tự nhiên nhỏ hơn 10.
Ví dụ 2. Thực hiện các lệnh sau. Kết quả sẽ in ra những số nào?
>>> k = 2
>>> while k < 50:
print(k, end = " ")
k = k + 3
Giải thích: Lệnh lặp while sẽ dừng khi k vượt quá 50. Bắt đầu vòng lặp, k = 2. Sau mỗi bước lặp, k tăng lên 3 đơn vị. Do vậy, kết quả sẽ in ra dãy sau:
2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47
Lệnh while là lệnh lặp với số lần không biết trước. Số lần lặp của lệnh while phụ thuộc vào điều kiện của lệnh.
Lưu ý:
>>> for k in range(10):
print(k, end = " ")
if k > 5:
break
2. CẤU TRÚC LẬP TRÌNH
Hoạt động 2. Các cấu trúc lập trình cơ bản
Đọc, thảo luận để hiểu các cấu trúc lập trình cơ bản trong ngôn ngữ lập trình bậc cao.
Với việc sử dụng câu lệnh điều kiện if và các câu lệnh lặp for, while ta có thể thấy một chương trình trên Python nói chung có thể được chia thành các khối lệnh sau:
Ba cấu trúc chương trình trên được gọi là các cấu trúc lập trình cơ bản của các ngôn ngữ lập trình bậc cao.
Ba cấu trúc lập trình cơ bản của các ngôn ngữ lập trình bậc cao gồm: cấu trúc tuần tự, cấu trúc rẽ nhánh, cấu trúc lặp.
Nhiệm vụ 1. Viết chương trình in toàn bộ dãy các số tự nhiên từ 1 đến 100 trên một hàng ngang.
Hướng dẫn. Mở phần mềm Python và nhập chương trình sau:
k = 1
while k <= 100:
print(k, end = " ")
k = k + 1
Nhiệm vụ 2. Viết chương trình in ra màn hình dãy các chữ cái tiếng Anh từ "A" đến "Z" theo ba hàng ngang trên màn hình, hai hàng ngang đầu có 10 chữ cái, hàng thứ ba có 6 chữ cái.
Hướng dẫn. Chúng ta đã biết các chữ cái tiếng Anh từ A đến Z chiếm các vị trí từ 65 đến 90 trong mã ASCII. Với số thứ tự k của mã ASCII, chúng ta sử dụng lệnh chr(k) trả lại kí tự tương ứng trong mã này.
k = 65 # bắt đầu từ số thứ tự của chữ cái A
i = 0
while k <= 90:
i = i + 1
if i % 10 == 0:
print(chr(k)) # in ra và xuống dòng
else:
print(chr(k), end = " ") # in ra trên cùng một hàng ngang
k = k + 1
LUYỆN TẬP
VẬN DỤNG
Viết chương trình in các số tự nhiên từ 1 đến 100 ra màn hình thành 10 hàng, mỗi hàng có 10 số, có dạng như sau:
1 2 3 10 11 12 20 91 92 100