Python - Vòng lặp: Cổng ra của Bạn đến Lập trình Hiệu quả

Xin chào các bạn nhà lập trình nhí! Hôm nay, chúng ta sẽ khám phá một trong những khái niệm mạnh mẽ nhất trong Python: vòng lặp. Là một giáo viên khoa học máy tính xinh đẹp ở khu phố, tôi rất vui mừng hướng dẫn các bạn trong chuyến hành trình này. Hãy tin tôi, khi bạn đã nắm vững vòng lặp, bạn sẽ cảm thấy như đã mở khóa một siêu sức trong lập trình!

Python - Loops

Vòng lặp là gì và Tại sao Chúng ta cần Chúng?

Tưởng tượng bạn được giao nhiệm vụ viết một chương trình in ra "Hello, World!" 100 lần. Nếu không có vòng lặp, bạn sẽ phải viết cùng một dòng mã 100 lần! Điều này không chỉ tédious mà còn thiếu hiệu quả. Đây là nơi vòng lặp đến gần cứu.

Vòng lặp cho phép chúng ta thực thi một khối mã liên tục. Chúng giống như một vòng xoay của mã của bạn, quay quanh và quay lại cho đến khi một điều kiện nhất định được thỏa mãn.

Sơ đồ Quy trình của một Vòng lặp

Trước khi chúng ta nhảy vào mã, hãy trực quan hóa cách một vòng lặp hoạt động:

[Bắt đầu]
|
v
[Khởi tạo Đếm]
|
v
[Kiểm tra Điều kiện]
|
[Đúng] [Sai]
|      |
v      v
[Thực thi Mã] [Thoát Vòng lặp]
|
v
[Cập nhật Đếm]
|
'--------^

Sơ đồ này đại diện cho cấu trúc cơ bản của hầu hết các vòng lặp. Chúng ta bắt đầu bằng cách thiết lập một đếm, kiểm tra một điều kiện, thực thi một số mã nếu điều kiện là đúng, cập nhật đếm của chúng ta, và sau đó kiểm tra điều kiện lại. Vòng lặp này tiếp tục cho đến khi điều kiện trở thành sai.

Các Loại Vòng lặp trong Python

Python cung cấp cho chúng ta hai loại chính của vòng lặp: vòng lặp for và vòng lặp while. Hãy khám phá mỗi loại của chúng với một số ví dụ thú vị!

1. Vòng lặp For

Vòng lặp for được sử dụng khi chúng ta biết trước rằng chúng ta muốn thực thi một khối mã bao nhiêu lần. Nó giống như nói với mã của bạn, "Điều này điều gì X số lần."

Cú pháp Cơ bản:

for item in sequence:
# mã cần được thực thi

Ví dụ 1: Đếm Cừu

for cừu in range(5):
print(f"Đang đếm cừu số {cừu + 1}")

# Output:
# Đang đếm cừu số 1
# Đang đếm cừu số 2
# Đang đếm cừu số 3
# Đang đếm cừu số 4
# Đang đếm cừu số 5

Trong ví dụ này, chúng ta sử dụng một vòng lặp for để đếm cừu. Hàm range(5) tạo ra một dãy số từ 0 đến 4, và vòng lặp của chúng ta lặp qua từng số trong số này. Chúng ta thêm 1 vào cừu khi in ra vì range(5) bắt đầu từ 0, nhưng chúng ta muốn đếm từ 1.

Ví dụ 2: Lặp qua một Danh sách

các_loại_trái_cây = ["táo", "chuối", "ổi"]
for loại_trái_cây in các_loại_trái_cây:
print(f"Tôi yêu ăn {loại_trái_cây}s!")

# Output:
# Tôi yêu ăn táo!
# Tôi yêu ăn chuối!
# Tôi yêu ăn ôi!

Ở đây, chúng ta đang lặp qua một danh sách các loại trái cây. Cho mỗi loại trái cây trong danh sách, chúng ta in ra một câu về việc yêu thích ăn loại trái cây đó. Nhận ra rằng Python tự động gán mỗi mục trong danh sách vào biến loại_trái_cây trong mỗi lần lặp.

2. Vòng lặp While

Vòng lặp while được sử dụng khi chúng ta muốn lặp lại một khối mã cho đến khi một điều kiện nhất định là đúng. Nó giống như nói, "Tiếp tục làm điều này cho đến khi tôi nói bạn nên dừng."

Cú pháp Cơ bản:

while điều_kiện:
# mã cần được thực thi

Ví dụ 3: Người chờ đợi không tålơn

đơn_đã_sẵn_sàng = False
thời_gian_chờ = 0

while not đơn_đã_sẵn_sàng:
thời_gian_chờ += 1
print(f"Đang chờ {thời_gian_chờ} phút...")
if thời_gian_chờ >= 5:
đơn_đã_sẵn_sàng = True

print("Đơn đã sẵn sàng!")

# Output:
# Đang chờ 1 phút...
# Đang chờ 2 phút...
# Đang chờ 3 phút...
# Đang chờ 4 phút...
# Đang chờ 5 phút...
# Đơn đã sẵn sàng!

Trong ví dụ này, chúng ta mô phỏng việc chờ đợi một đơn tại nhà hàng. Vòng lặp tiếp tục cho đến khi đơn_đã_sẵn_sàngFalse. Mỗi lần lặp tăng thời gian chờ thêm 1 phút. Khi chúng ta đã chờ đợi 5 phút, chúng ta đặt đơn_đã_sẵn_sàng thành True, kết thúc vòng lặp.

Câu lệnh Kiểm soát Vòng lặp Python

Đôi khi, chúng ta cần nhiều kiểm soát hơn về vòng lặp của mình. Python cung cấp cho chúng ta ba câu lệnh kiểm soát vòng lặp:

Câu lệnh Mô tả
break Thoát vòng lặp sớm
continue Bỏ qua phần còn lại của lần lặp hiện tại và chuyển sang lần lặp tiếp theo
pass Không làm gì, hoạt động như một dấu giữ chỗ

Hãy xem chúng hoạt động!

Ví dụ 4: Để bỏ Hábit Xấu

các_hábit_xấu = ["chậm trễ", "ngủ quên", "thực phẩm rắc rối", "quá nhiều TV"]
số_ngày_hoàn_hảo = 0

for hábit in các_hábit_xấu:
if hábit == "thực phẩm rắc rối":
print(f"Tôi không thể kiểm soát {hábit}! Đang phá streak.")
break
số_ngày_hoàn_hảo += 1
print(f"Tôi đã tránh được {hábit} trong {số_ngày_hoàn_hảo} ngày!")

print(f"Tổng số ngày có hábit tốt: {số_ngày_hoàn_hảo}")

# Output:
# Tôi đã tránh được chậm trễ trong 1 ngày!
# Tôi đã tránh được ngủ quên trong 2 ngày!
# Tôi không thể kiểm soát thực phẩm rắc rối! Đang phá streak.
# Tổng số ngày có hábit tốt: 2

Trong ví dụ này, chúng ta sử dụng câu lệnh break để thoát vòng lặp khi gặp "thực phẩm rắc rối". Điều này mô phỏng việc phá một chuỗi hábit tốt.

Ví dụ 5: Bỏ qua Rau Củ

các_món_ăn = ["pizza", "cải bó xôi", "bánh mì", "rau cải xanh", "kem"]

print("Mẹ nói tôi phải ăn hết mọi thứ trên đĩa, nhưng...")
for món_ăn in các_món_ăn:
if món_ăn in ["cải bó xôi", "rau cải xanh"]:
print(f"Ồ! Tôi đã không nhìn thấy {món_ăn} rơi xuống sàn!")
continue
print(f"Ngon! Tôi đang ăn {món_ăn}!")

# Output:
# Mẹ nói tôi phải ăn hết mọi thứ trên đĩa, nhưng...
# Ngon! Tôi đang ăn pizza!
# Ồ! Tôi đã không nhìn thấy cải bó xôi rơi xuống sàn!
# Ngon! Tôi đang ăn bánh mì!
# Ồ! Tôi đã không nhìn thấy rau cải xanh rơi xuống sàn!
# Ngon! Tôi đang ăn kem!

Ở đây, chúng ta sử dụng continue để bỏ qua rau củ trong danh sách các món ăn. Khi chúng ta gặp cải bó xôi hoặc rau cải xanh, chúng ta in ra một lý do và sau đó tiếp tục với lần lặp tiếp theo.

Kết luận

Xin chúc mừng! Bạn vừa bước ra một bước lớn trong hành trình Python của mình bằng cách nắm vững vòng lặp. Hãy nhớ, luyện tập là chìa khóa để thành công, vì vậy đừng ngần ngại thử nghiệm các khái niệm này. Hãy thử tạo ra vòng lặp của riêng bạn, kết hợp các loại khác nhau, và xem bạn có thể tạo ra điều gì.

Vòng lặp giống như nhịp điệu trong một bài hát - chúng giữ cho mã của bạn di chuyển và không ngừng. Vì vậy hãy tiếp tục lập trình, tiếp tục vòng lặp, và nhất quán là hãy luôn có niềm vui khi lập trình!

Chúc các bạn lập trình như một nhà vua Python trong tương lai!

Credits: Image by storyset