Lập trình

8 dự án Python nhỏ cho học sinh THCS tự làm ở nhà

8 dự án Python nhỏ cho học sinh THCS tự làm ở nhà

Dự án Python cho học sinh THCS nên nhỏ, chạy được trong một buổi và mỗi dự án thêm đúng một ý tưởng mới. Tám dự án dưới đây đi từ máy tính bỏ túi, đoán số, kéo búa bao đến quiz, vẽ hoa bằng turtle và mật mã Caesar, đủ để một bạn mới học Python luyện biến, điều kiện, vòng lặp, danh sách, hàm và tệp. Tất cả chỉ dùng thư viện có sẵn của Python.

Trước khi bắt đầu

  • Cài Python từ python.org. Bộ cài chính thức có IDLE để viết và chạy code; Thonny cũng là lựa chọn tốt cho người mới. Xem bài Cài Scratch, Thonny và VS Code nếu chưa cài.
  • Gõ lại code, đừng chép dán. Gõ tay giúp con nhớ cú pháp và tự phát hiện lỗi.
  • Lưu mỗi dự án một tệp: du_an_1.py, du_an_2.py… để sau này mở lại xem mình tiến bộ thế nào.

Nếu con chưa biết bắt đầu Python từ đâu, đọc trước bài Python cho trẻ em: bắt đầu từ mấy tuổi, học gì trước.

Tám dự án Python nhỏ cho học sinh THCS kèm kiến thức và độ khó: máy tính bỏ túi, đoán số bí mật, kéo búa bao, bảng cửu chương, quiz trắc nghiệm, vẽ hoa bằng turtle, mật mã Caesar, sổ việc cần làm

Dự án 1–4: làm quen input, if và vòng lặp

Dự án 1: Máy tính bỏ túi

Học được: input, đổi chữ thành số bằng float, rẽ nhánh if/elif.

a = float(input("Số thứ nhất: "))
phep = input("Phép tính (+ - * /): ")
b = float(input("Số thứ hai: "))
if phep == "+":
    print(a + b)
elif phep == "-":
    print(a - b)
elif phep == "*":
    print(a * b)
elif phep == "/" and b != 0:
    print(a / b)
else:
    print("Phép tính không hợp lệ hoặc chia cho 0")

Thử thách: thêm phép lũy thừa **; cho máy hỏi “Tính tiếp không?” và lặp lại.

Dự án 2: Đoán số bí mật

Học được: random, vòng lặp while, đếm số lần.

import random
so_bi_mat = random.randint(1, 100)
lan = 0
doan = 0
while doan != so_bi_mat:
    doan = int(input("Đoán số từ 1 đến 100: "))
    lan = lan + 1
    if doan < so_bi_mat:
        print("Lớn hơn nữa!")
    elif doan > so_bi_mat:
        print("Nhỏ hơn nữa!")
print("Đúng rồi! Bạn đoán", lan, "lần.")

Câu hỏi cho con: “Cách đoán nào luôn tìm ra số trong ít lần nhất?” (Đoán ở giữa khoảng còn lại.) Đây là ý tưởng tìm kiếm nhị phân.

Dự án 3: Kéo, búa, bao

Học được: danh sách, random.choice, kết hợp nhiều điều kiện.

Gợi ý các bước: tạo danh sách ["kéo", "búa", "bao"]; máy chọn ngẫu nhiên bằng random.choice; người chơi nhập lựa chọn; so sánh để in “Hòa”, “Bạn thắng” hoặc “Máy thắng”. Có ba trường hợp người chơi thắng: kéo gặp bao, búa gặp kéo, bao gặp búa.

Thử thách: chơi 5 ván, đếm điểm hai bên.

Dự án 4: Bảng cửu chương

Học được: vòng lặp for, range, chuỗi định dạng f-string.

n = int(input("Bảng mấy? "))
for i in range(1, 11):
    print(f"{n} x {i} = {n * i}")

Thử thách: dùng hai vòng lặp lồng nhau để in cả bảng từ 2 đến 9; tạo bài kiểm tra 10 câu ngẫu nhiên.

Dự án 5–8: danh sách, turtle, chuỗi và tệp

Dự án 5: Quiz trắc nghiệm

Học được: từ điển (dict), duyệt danh sách, tính điểm.

Lưu câu hỏi thành danh sách các từ điển, mỗi phần tử có "hoi" và "dap_an". Duyệt bằng for, hỏi bằng input, so sánh với đáp án, cộng điểm. Cuối cùng in “Bạn được 7/10 điểm”.

Thử thách: viết quiz từ vựng tiếng Anh hoặc quiz lịch sử cho em mình ôn bài.

Dự án 6: Vẽ hoa bằng turtle

Học được: thư viện turtle (có sẵn trong Python), vòng lặp vẽ hình.

import turtle
t = turtle.Turtle()
t.speed(0)
for i in range(36):
    t.circle(80)
    t.left(10)
turtle.done()

Câu hỏi cho con: “Vì sao 36 lần, mỗi lần quay 10 độ?” (36 × 10 = 360 độ, đúng một vòng.) Đổi số lần và góc để ra hoa khác. Thêm t.color("red") để đổi màu.

Dự án 7: Mật mã Caesar

Học được: chuỗi, ord và chr đổi chữ thành số và ngược lại, phép chia lấy dư %.

Ý tưởng: mỗi chữ cái dịch đi 3 vị trí trong bảng chữ cái, A thành D, B thành E, Z quay về C. Viết một hàm ma_hoa(chu, buoc), duyệt từng ký tự, chỉ dịch chữ cái tiếng Anh, giữ nguyên dấu cách. Muốn giải mã thì dịch ngược bằng bước âm.

Thử thách: gửi một câu đã mã hóa cho bạn, kèm số bước, để bạn tự giải.

Dự án 8: Sổ việc cần làm

Học được: hàm, menu lựa chọn, ghi và đọc tệp văn bản.

Gợi ý: menu có 4 lựa chọn (xem, thêm, xóa, thoát). Mỗi lựa chọn là một hàm. Danh sách việc được lưu vào tệp viec.txt bằng open(..., "w", encoding="utf-8") để lần sau mở chương trình vẫn còn. Ghi encoding="utf-8" để chữ tiếng Việt có dấu không bị lỗi.

Thử thách: đánh dấu việc đã xong; sắp xếp theo thứ tự ưu tiên.

Làm ngay được: kế hoạch 4 tuần

Tuần Dự án Mục tiêu cuối tuần
1 1 và 2 Tự viết lại dự án 2 không nhìn mẫu
2 3 và 4 Thêm được một thử thách vào mỗi dự án
3 5 và 6 Làm quiz riêng về chủ đề con thích
4 7 và 8 Hoàn thành một dự án con tự nghĩ ra, dựa trên ý tưởng đã học

Mỗi tuần 2–3 buổi, mỗi buổi 45–60 phút. Cuối tuần, con cho bố mẹ chạy thử sản phẩm của mình và giải thích một đoạn code. Giải thích được là hiểu thật.

Video bài giảng đầu tiên của CS50P (Đại học Harvard) bằng tiếng Anh, nói về hàm và biến, hợp với học sinh muốn hiểu sâu hơn và luyện nghe tiếng Anh chuyên ngành; bật phụ đề nếu cần.

Khi con bị lỗi: ba thói quen gỡ lỗi

  • Đọc dòng cuối của thông báo lỗi. SyntaxError, NameError, IndentationError cho biết loại lỗi; Python cũng chỉ ra dòng bị lỗi.
  • In ra để xem. Thêm print(bien) trước dòng nghi ngờ để thấy giá trị thật.
  • Sửa một chỗ, chạy lại một lần. Sửa nhiều chỗ cùng lúc thì không biết chỗ nào đúng.

Muốn thêm bài luyện ngắn trước khi làm dự án, xem Bài tập Python cho học sinh THCS. Khi con đã làm hết tám dự án, làm web là bước tiếp theo thú vị: xem Học sinh THCS học làm web.

Học Python có người hướng dẫn tại Smart Pens

Tự làm theo mẫu là bước đầu; tự nghĩ dự án, chia nhỏ và gỡ lỗi khi chương trình lớn dần là bước khó hơn. Trong lộ trình Lập trình cho trẻ của Smart Pens, chặng Python 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, với ví dụ sản phẩm cuối chặng là trò chơi bắn bia viết bằng Python. Lớp học trực tiếp tại Ngũ Hành Sơn, Đà Nẵng; phụ huynh có thể đăng ký học thử cho con.

Video tham khảo

CS50P - Lecture 0 - Functions, Variables (mở trong tab mới) · CS50

Câu hỏi thường gặp

Học sinh cần biết gì trước khi làm các dự án Python này?

Con cần biết in ra màn hình, biến, nhập dữ liệu bằng input, điều kiện if và vòng lặp. Ba dự án đầu chỉ dùng những phần đó; các dự án sau giới thiệu thêm danh sách, từ điển, hàm và tệp.

Làm dự án Python ở nhà cần cài gì?

Cài Python từ python.org, bộ cài chính thức có kèm IDLE để viết và chạy code. Thonny là lựa chọn khác dành cho người mới. Thư viện random và turtle trong bài đều có sẵn, không cần cài thêm.

Mỗi dự án mất bao lâu?

Dự án 1–4 thường làm trong một buổi 45–60 phút. Dự án 5–8 có thể chia hai buổi: buổi đầu làm bản chạy được, buổi sau thêm tính năng.

Con làm dự án bị lỗi mà bố mẹ không biết Python thì giúp thế nào?

Hãy để con đọc to dòng báo lỗi cuối cùng và chỉ ra dòng code bị báo. Hỏi con dòng đó định làm gì. Đa số lỗi người mới là sai chính tả, thiếu dấu hai chấm hoặc thụt lề sai.

Nguồn tham khảo

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.

← Tất cả bài viết

Học cùng Smart Pens

Muốn con thử trước? Đăng ký học thử miễn phí.

Cho con học thử lập trình hoặc tiếng Anh miễn phí 1 tuần.