Vòng Lặp Trong Python (For, While) Cơ Bản

Vòng lặp trong Python

Trong bài này chúng ta sẽ cùng tìm hiểu vòng lặp trong ngôn ngữ Python: vòng lặp while, vòng lặp for và vòng lặp lồng nhau.

Thử tưởng tượng bạn cần in ra 100 dòng, chẳng lẽ lại gõ 100 lệnh print? Vòng lặp sinh ra để làm việc đó: viết một lần, máy chạy lại bao nhiêu lần cũng được. Python có 2 loại vòng lặp chính, cách dùng hơi khác C một chút, chúng ta đi từng loại nhé.

Giới thiệu về vòng lặp trong Python

Vòng lặp (loop) là cấu trúc điều khiển cho phép chạy lặp đi lặp lại một khối code, hoặc một số lần nhất định, hoặc cho tới khi một điều kiện không còn đúng nữa.

Python có 2 dạng vòng lặp chính là while và for.

Vòng lặp trong Python
Hình 1. Vòng lặp trong Python

1. Vòng lặp While

Vòng lặp while lặp lại một khối lệnh chừng nào điều kiện còn đúng.

Vòng lặp While
Hình 2. Vòng lặp While

Cấu trúc:

while điều_kiện:
    # các câu lệnh được lặp lại khi điều kiện là True

Cách chạy như sau:
1. Kiểm tra điều kiện.
2. Nếu là True thì chạy khối lệnh bên trong, xong quay lại bước 1.
3. Nếu là False thì thoát vòng lặp, chạy tiếp các lệnh phía sau.

Ví dụ:

i = 0

while i < 10:
    print(i)
    i += 1

Kết quả:

0
1
2
3
4
5
6
7
8
9

Biến i bắt đầu từ 0, mỗi vòng in ra rồi tăng thêm 1. Khi i lên tới 10 thì điều kiện i < 10 sai, vòng lặp dừng. Vì vậy số 10 không được in ra.

Lưu ý: Nếu quên dòng i += 1, biến i mãi mãi bằng 0, điều kiện luôn đúng và chương trình bị treo trong vòng lặp vô hạn. Gặp trường hợp này thì nhấn Ctrl + C trong terminal để dừng chương trình nhé.

2. Vòng lặp For

Vòng lặp for trong Python dùng để duyệt qua lần lượt từng phần tử của một tập hợp như list, chuỗi, tuple. Đây là điểm khác lớn so với C: for của Python không có biến đếm, điều kiện, bước nhảy như for (i = 0; i < 10; i++) mà đi thẳng qua từng phần tử.

Vòng lặp For
Hình 3. Vòng lặp For

Cấu trúc:

for biến in tập_hợp:
    # các câu lệnh được lặp lại cho mỗi phần tử trong tập hợp

Mỗi vòng lặp, biến sẽ được gán bằng phần tử tiếp theo trong tập_hợp, rồi khối lệnh bên trong được chạy. Hết phần tử thì vòng lặp dừng.

Ví dụ:

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    print(fruit)

Kết quả:

apple
banana
cherry

Vòng đầu fruit là “apple”, vòng hai là “banana”, vòng ba là “cherry”. Hết danh sách thì dừng.

Muốn lặp theo số đếm giống C thì dùng thêm hàm range(): for i in range(10): sẽ cho i chạy từ 0 tới 9, kết quả giống hệt ví dụ while ở trên mà gọn hơn nhiều.

3. Vòng lặp lồng nhau

Vòng lặp lồng nhau là đặt một vòng lặp bên trong một vòng lặp khác. Cứ mỗi vòng của vòng ngoài, vòng trong sẽ chạy hết một lượt.

Kỹ thuật này hay dùng khi làm việc với dữ liệu 2 chiều như ma trận, bảng, hoặc list lồng trong list.

Ví dụ:

# Tính tổng các phần tử của ma trận
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
sum = 0

for row in matrix:
    for num in row:
        sum += num

print("Tổng các phần tử của ma trận là:", sum)

Vòng ngoài duyệt qua từng hàng của ma trận, vòng trong duyệt qua từng số trong hàng đó và cộng dồn vào biến sum. Lệnh print nằm ngoài cả 2 vòng lặp (không thụt vào), nên chỉ chạy một lần sau khi đã cộng xong. Kết quả in ra:

Tổng các phần tử của ma trận là: 45

Thử thụt lệnh print vào trong vòng for num xem, bạn sẽ thấy nó in ra 9 lần với tổng tăng dần. Đây là cách hay để hiểu rõ thụt đầu dòng ảnh hưởng thế nào đến chương trình đúng không nào.

Lời kết

while dùng khi bạn không biết trước số lần lặp, chỉ biết điều kiện dừng. for dùng khi cần duyệt qua một tập hợp có sẵn hoặc lặp một số lần cố định với range(). Nắm chắc 2 loại này là đủ để giải hầu hết các bài toán lặp rồi.

Nếu thấy bài viết này hay, hãy chia sẻ tới những người bạn đang học Python nhé. Và nếu thắc mắc điều gì, hãy để lại bình luận bên dưới.

Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *