Bài tập Python cho học sinh THCS, có lời giải

Dưới đây là 10 bài tập Python cho học sinh THCS, chia 3 mức từ dễ đến khó: nhập dữ liệu và tính toán, vòng lặp và điều kiện, rồi các thuật toán nhỏ. Mỗi bài có gợi ý, lời giải mẫu và bộ dữ liệu để con tự kiểm tra. Bài tập Python lớp 8, lớp 9 trong bài chỉ dùng lệnh cơ bản: input, print, if, for, while, phép chia lấy dư %.
Cách dùng hợp nhất: con đọc đề, tự làm, chạy thử với dữ liệu đã cho, chỉ mở lời giải sau khi đã có bài của mình. Nếu chưa cài Python ở nhà, xem bài cài Scratch, Thonny và VS Code.
Mức 1: nhập, tính, in
Bài 1. Diện tích và chu vi hình chữ nhật. Nhập chiều dài, chiều rộng (số thực), in diện tích và chu vi.
Gợi ý: dùng float(input()) để đọc số có phần thập phân.
dai = float(input("Chiều dài: "))
rong = float(input("Chiều rộng: "))
print("Diện tích:", dai * rong)
print("Chu vi:", 2 * (dai + rong))
Thử: 5 và 3 → diện tích 15.0, chu vi 16.0.
Bài 2. Chẵn hay lẻ. Nhập một số nguyên, in “chẵn” hoặc “lẻ”.
Gợi ý: số chẵn chia 2 dư 0.
n = int(input("Nhập số nguyên: "))
if n % 2 == 0:
print("chẵn")
else:
print("lẻ")
Thử: 7 → lẻ; 0 → chẵn; -4 → chẵn.
Bài 3. Giải phương trình ax + b = 0. Nhập a, b. In nghiệm, hoặc thông báo vô nghiệm, vô số nghiệm.
Gợi ý: trường hợp a = 0 phải xét riêng, vì không chia được cho 0.
a = float(input("a = "))
b = float(input("b = "))
if a != 0:
print("x =", -b / a)
elif b == 0:
print("Vô số nghiệm")
else:
print("Vô nghiệm")
Thử: a = 2, b = -6 → x = 3.0; a = 0, b = 0 → vô số nghiệm; a = 0, b = 5 → vô nghiệm.
Mức 2: vòng lặp và điều kiện
Bài 4. Tổng từ 1 đến n. Nhập n, in 1 + 2 + … + n.
n = int(input("n = "))
tong = 0
for i in range(1, n + 1):
tong = tong + i
print("Tổng:", tong)
Thử: n = 10 → 55; n = 1 → 1. Thử thêm: so với công thức n × (n + 1) / 2 xem có khớp không.
Bài 5. Bảng cửu chương. Nhập một số từ 2 đến 9, in bảng nhân của số đó.
k = int(input("Bảng mấy? "))
for i in range(1, 11):
print(k, "x", i, "=", k * i)
Thử: 7 → dòng cuối là 7 x 10 = 70.
Bài 6. Kiểm tra số nguyên tố. Nhập n, in n có phải số nguyên tố không.
Gợi ý: số nguyên tố lớn hơn 1 và chỉ chia hết cho 1 và chính nó. Đếm số ước từ 2 đến n − 1.
n = int(input("n = "))
la_nguyen_to = n > 1
for d in range(2, n):
if n % d == 0:
la_nguyen_to = False
break
print("Nguyên tố" if la_nguyen_to else "Không nguyên tố")
Thử: 13 → nguyên tố; 1 → không; 2 → nguyên tố; 21 → không.
Nâng cao: chỉ cần thử d đến căn bậc hai của n. Con thử sửa vòng lặp thành while d * d <= n.
Mức 3: thuật toán nhỏ
Bài 7. Ước chung lớn nhất (thuật toán Euclid). Nhập a, b dương, in ƯCLN.
Gợi ý: ƯCLN(a, b) = ƯCLN(b, a chia b lấy dư), lặp đến khi số dư bằng 0.
a = int(input("a = "))
b = int(input("b = "))
while b != 0:
a, b = b, a % b
print("ƯCLN:", a)
Thử: 12 và 18 → 6; 17 và 5 → 1. Bật chế độ chạy từng bước để xem a, b thay đổi qua mỗi vòng.
Bài 8. Đảo ngược chuỗi và kiểm tra đối xứng. Nhập một từ, in từ đảo ngược và cho biết có đọc xuôi ngược như nhau không.
s = input("Nhập một từ: ")
dao = ""
for ky_tu in s:
dao = ky_tu + dao
print("Đảo ngược:", dao)
print("Đối xứng" if dao == s else "Không đối xứng")
Thử: “python” → “nohtyp”, không đối xứng; “level” → đối xứng.
Ghi chú: Python có cách ngắn hơn là s[::-1]. Con nên tự viết vòng lặp trước để hiểu cách làm.
Bài 9. Số lớn nhất trong dãy. Nhập n, rồi nhập n số nguyên. In số lớn nhất, không dùng hàm max.
n = int(input("Có bao nhiêu số? "))
lon_nhat = int(input("Số thứ 1: "))
for i in range(2, n + 1):
x = int(input("Số thứ " + str(i) + ": "))
if x > lon_nhat:
lon_nhat = x
print("Lớn nhất:", lon_nhat)
Thử: 3, 8, -2 → 8; dãy toàn số âm -5, -1, -9 → -1. Đây là lý do không gán lon_nhat = 0 ban đầu.
Bài 10. Trò chơi đoán số. Máy chọn ngẫu nhiên một số từ 1 đến 100. Người chơi đoán, máy báo “lớn hơn” hoặc “nhỏ hơn” đến khi đúng, rồi in số lần đoán.
import random
bi_mat = random.randint(1, 100)
so_lan = 0
doan = 0
while doan != bi_mat:
doan = int(input("Đoán: "))
so_lan += 1
if doan < bi_mat:
print("Lớn hơn")
elif doan > bi_mat:
print("Nhỏ hơn")
print("Đúng rồi! Số lần đoán:", so_lan)
Thử thách: nếu luôn đoán số ở giữa khoảng còn lại, cần nhiều nhất bao nhiêu lần? Con thử chơi và ghi lại. Đây là ý tưởng của tìm kiếm nhị phân.
Làm ngay được: cách tự chấm bài
Trước khi so với lời giải, con tự chấm theo 4 bước:
- Chạy với dữ liệu thử trong bài. Kết quả phải khớp.
- Thêm một trường hợp đặc biệt con tự nghĩ: số 0, số âm, số 1, chuỗi rỗng, dãy chỉ có 1 phần tử.
- Đọc lại tên biến. Người khác đọc có hiểu biến đó lưu gì không?
- Giải thích lại bằng lời cho bố mẹ hoặc bạn: chương trình làm gì, theo thứ tự nào.
Kế hoạch 2 tuần cho con tự luyện:
| Buổi | Bài | Thời gian |
|---|---|---|
| 1 | Bài 1–3 | 45 phút |
| 2 | Bài 4–5 | 45 phút |
| 3 | Bài 6 và phần nâng cao | 45 phút |
| 4 | Bài 7–8 | 45 phút |
| 5 | Bài 9–10 | 60 phút |
| 6 | Làm lại 3 bài khó nhất mà không nhìn lời giải | 45 phút |
Buổi 6 quan trọng nhất. Làm lại được không nhìn lời giải nghĩa là con đã thực sự nắm bài, không chỉ hiểu khi đọc.
Bước tiếp theo sau 10 bài
Khi đã làm chắc 10 bài này, con sẵn sàng cho dự án nhỏ có tương tác: trò chơi đố vui, máy tính bỏ túi, trò chơi chữ. Bài Dự án Python cho học sinh có thêm ý tưởng.
Chặng Python trong lộ trình Lập trình cho trẻ của Smart Pens dành cho học sinh 10–14 tuổi (lớp 5–9): con viết code bằng chữ lần đầu, giải bài toán nhỏ và viết chương trình có tương tác, kết thúc bằng trò chơi bắn bia “Target practice” viết bằng Python. Lớp học trực tiếp tại trung tâm ở Ngũ Hành Sơn, Đà Nẵng; phụ huynh có thể đăng ký học thử để con thử một buổi.
Câu hỏi thường gặp
Học sinh lớp 8 chưa học Python ở trường có làm được các bài này không?
Làm được nếu con đã biết cách nhập, in, biến, if và vòng lặp for. Mức 1 chỉ cần nhập, tính và in. Nếu con chưa biết gì về Python, nên học các lệnh cơ bản trước rồi quay lại.
Nên xem lời giải lúc nào?
Sau khi con đã tự làm ít nhất 15–20 phút, hoặc đã có bài chạy được và muốn so cách làm. Mở lời giải quá sớm thì con chỉ nhớ đáp án chứ không luyện được cách nghĩ.
Code của con khác lời giải nhưng vẫn chạy đúng thì sao?
Hoàn toàn bình thường. Một bài có nhiều cách giải đúng. Hãy chạy cả hai với cùng các bộ dữ liệu thử, rồi so xem cách nào dễ đọc hơn.
Dùng phần mềm gì để chạy Python ở nhà?
Người mới nên dùng Thonny vì dễ cài và có chế độ chạy từng bước. Bài hướng dẫn cài Scratch, Thonny và VS Code trên blog Smart Pens có các bước chi tiết.
Bài viết có sự hỗ trợ của AI. Thấy thông tin chưa đúng? Báo cho Smart Pens qua Zalo 0384 582 636 để chúng tôi sửa.