(Bài 5): Vòng lặp for while trong python

Nội dung chính

📘 1. Vì sao cần vòng lặp trong Python?

Khi viết chương trình, rất nhiều tình huống bạn cần lặp lại một thao tác nhiều lần:

  • In ra 100 dòng câu chúc

  • Tính tổng 1 → 100

  • Xử lý từng phần tử trong danh sách

  • Đọc từng dòng trong file

  • Lập trình game: cập nhật vị trí nhân vật theo từng frame

  • Lập trình AI: lặp hàng nghìn lần để huấn luyện mô hình

Nếu không có vòng lặp, bạn sẽ phải viết:

print(1)
print(2)
print(3)
...
print(100)

➡️ Quá chậm, quá ngu ngốc, quá “không Pythonic”.

Vòng lặp là công cụ giúp bạn:

  • Tự động hoá thao tác lặp lại

  • Viết ít code hơn

  • Chương trình nhanh hơn

  • Dễ bảo trì hơn

  • Tạo logic phức tạp từ cấu trúc đơn giản

Trong bài này, bạn sẽ học:

  • Vòng lặp for

  • Vòng lặp while

  • Từ khoá quan trọng: break, continue, pass

  • Cách dùng vòng lặp với list, range, dict, string, file

  • Lỗi thường gặp

  • 20 bài tập từ cơ bản đến nâng cao (kèm lời giải)


🟩 2. Vòng lặp FOR trong Python – đơn giản nhưng mạnh mẽ

Python dùng for theo phong cách duyệt từng phần tử trong một tập hợp (iterable).

✔️ Cú pháp

for biến in tập_hợp:
# khối lệnh

Ví dụ:

for i in [1, 2, 3]:
print(i)

✔ Kết quả:

1
2
3

✔️ Dùng range()

Hàm range() tạo ra một dãy số.

Cú pháp:

range(start, stop, step)

Ví dụ 1: In từ 0 → 4

for i in range(5):
print(i)

Ví dụ 2: In từ 1 → 10

for i in range(1, 11):
print(i)

Ví dụ 3: Step nhảy bước

for i in range(0, 10, 2):
print(i)

➡️ Kết quả: 0 2 4 6 8


🟦 2.1. For với danh sách (list)

colors = ["red", "green", "blue"]

for c in colors:
print(c)


🟦 2.2. For với chuỗi (string)

for ch in "Python":
print(ch)

🟦 2.3. For với dictionary

Duyệt key:

person = {"name": "Nam", "age": 25}

for k in person:
print(k)

Duyệt giá trị:

for v in person.values():
print(v)

Duyệt cả key và value:

for k, v in person.items():
print(k, v)

🟧 3. Vòng lặp WHILE – lặp cho đến khi điều kiện sai

✔️ Cú pháp:

while điều_kiện:
# thực thi

Ví dụ:

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

🟦 3.1. While với điều kiện dừng

Ví dụ lặp cho đến khi người dùng nhập số đúng:

n = -1
while n < 0:
n = int(input("Nhập số dương: "))

🟦 3.2. Vòng lặp vô hạn

while True:
print("Nhấn Ctrl+C để dừng")

🟥 4. Các câu lệnh điều khiển vòng lặp

Python hỗ trợ 3 lệnh cực quan trọng:


✔️ break – thoát khỏi vòng lặp

for i in range(10):
if i == 5:
break
print(i)

Kết quả: 0 1 2 3 4


✔️ continue – bỏ qua vòng lặp hiện tại

for i in range(5):
if i == 2:
continue
print(i)

Kết quả: 0 1 3 4


✔️ pass – để trống, không làm gì

for i in range(5):
pass

🟪 5. Lồng nhiều vòng lặp (nested loop)

Ví dụ: In bảng cửu chương

for i in range(1, 10):
for j in range(1, 10):
print(i, "x", j, "=", i*j)
print()

🟩 6. Các lỗi thường gặp với vòng lặp

❌ Quên tăng biến điều kiện

i = 0
while i < 5:
print(i)

➡️ Vòng lặp vô tận.


❌ Nhầm break và return

break chỉ thoát vòng lặp
return thoát toàn bộ hàm.


❌ Dùng range sai stop (stop không được tính vào)

for i in range(1, 5):
print(i)

➡️ In → 1, 2, 3, 4 (không có 5)


🟦 7. 20 bài tập tự luyện + lời giải chi tiết


📝 Bài 1: In số từ 1 đến 100

for i in range(1, 101):
print(i)

📝 Bài 2: Tính tổng từ 1 đến N

n = int(input("Nhập N: "))
s = 0
for i in range(1, n+1):
s += i
print(s)

📝 Bài 3: Đếm số chẵn trong danh sách

lst = [1, 4, 6, 7, 8, 11]
count = 0
for x in lst:
if x % 2 == 0:
count += 1print(“Số chẵn:”, count)


📝 Bài 4: Tìm số lớn nhất trong list

numbers = [5, 2, 9, 1, 7]
max_val = numbers[0]
for x in numbers:
if x > max_val:
max_val = xprint(“Max:”, max_val)


📝 Bài 5: Tính giai thừa n!

n = int(input("n = "))
gt = 1
for i in range(1, n+1):
gt *= iprint(“n! =”, gt)


📝 Bài 6: In bảng cửu chương N

n = int(input("Nhập số: "))

for i in range(1, 11):
print(n, “x”, i, “=”, n*i)


📝 Bài 7: In tam giác sao

*
**
***
**
**
for i in range(1, 5):
print("*" * i)

📝 Bài 8: Tính tổng các số lẻ từ 1 đến 100

s = 0
for i in range(1, 101, 2):
s += i
print(s)

📝 Bài 9: Đếm xem chuỗi có bao nhiêu chữ ‘a’

s = "anaconda"
count = 0
for ch in s:
if ch == ‘a’:
count += 1print(count)


📝 Bài 10: While – nhập số cho đến khi nhập đúng

n = -1
while n < 0:
n = int(input("Nhập số >= 0: "))

📝 Bài 11: Kiểm tra số nguyên tố

n = int(input("Nhập n: "))
is_prime = True
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
is_prime = False
breakprint(“Nguyên tố” if is_prime else “Không phải nguyên tố”)


📝 Bài 12: FizzBuzz

for i in range(1, 101):
if i % 15 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)

📝 Bài 13: Tính tổng chữ số của số nguyên

n = int(input("Nhập n: "))
s = 0
while n > 0:
s += n % 10
n //= 10print(s)


📝 Bài 14: Đảo ngược chuỗi

s = "Python"
rev = ""
for ch in s:
rev = ch + revprint(rev)


📝 Bài 15: Tìm số xuất hiện nhiều nhất trong danh sách

lst = [1,2,2,3,3,3,4]
max_count = 0
result = None
for x in lst:
count = lst.count(x)
if count > max_count:
max_count = count
result = xprint(result)


📝 Bài 16: Tính tổng bình phương từ 1 đến N

n = int(input("Nhập n: "))
s = 0
for i in range(1, n+1):
s += i * iprint(s)


📝 Bài 17: In số Fibonacci

a, b = 0, 1
for i in range(10):
print(a)
a, b = b, a + b

📝 Bài 18: Tính số lượng ký tự in hoa trong chuỗi

s = "PyThOn"
count = 0
for ch in s:
if ch.isupper():
count += 1print(count)


📝 Bài 19: While – đoán số bí mật

secret = 7
guess = -1
while guess != secret:
guess = int(input(“Đoán số: “))print(“Chính xác!”)


📝 Bài 20: Vẽ hình chữ nhật bằng dấu * (nested loop)

w = 5
h = 3
for i in range(h):
for j in range(w):
print(“*”, end=“”)
print()

🟦 8. Vòng lặp giúp bạn “lập trình thực sự”

Ở những bài trước, bạn mới chỉ làm quen Python ở mức độ “đơn lẻ”.
Nhưng từ bài 5 – vòng lặp, bạn đã bắt đầu lập trình giống người thật:

  • Xử lý dữ liệu

  • Tự động hoá thao tác

  • Tạo chương trình có luồng logic

  • Biết kiểm soát điều kiện và dòng chảy

Từ đây, bạn đã đủ nền tảng để học sang:

Tiếp tục chuỗi series tự học python: (Bài 6): Hàm (function) trong Python

1 Trackback / Pingback

  1. (Bài 4): Cấu trúc điều kiện IF ELSE trong Python - aidanang.com

Leave a Reply

Your email address will not be published.


*