Từ Scratch sang Python cho trẻ: khi nào chuyển, khối nào ứng với lệnh nào
Hướng dẫn học sinh chuyển từ Scratch sang Python: dấu hiệu sẵn sàng, cài Thonny, bảng khối Scratch ứng với lệnh Python, hai dự án đố vui phép nhân và con rùa vẽ đa giác.
Sau một thời gian ghép khối Scratch, nhiều học sinh bắt đầu thấy giới hạn: chương trình dài thì khối chồng chất khó nhìn, muốn làm việc "như người lớn" thì cần gõ lệnh. Python là bước tiếp theo phổ biến nhất: cú pháp gọn, gần với tiếng Anh, được dùng thật trong khoa học dữ liệu, trí tuệ nhân tạo và điều khiển robot. Bài viết giúp phụ huynh và giáo viên biết khi nào nên chuyển, khối Scratch nào ứng với lệnh Python nào, và hai dự án đầu tiên viết lại từ Scratch sang Python.
1. Khi nào nên chuyển sang Python?

Tuổi không phải là thước đo duy nhất. Trẻ sẵn sàng khi đã tự làm được dự án Scratch có biến, vòng lặp, điều kiện, và gõ bàn phím không quá chậm. Phần lớn trẻ đạt được điều này ở khoảng 10–12 tuổi. Nếu trẻ còn lúng túng với khái niệm biến hay vòng lặp, ở lại với Scratch thêm một thời gian sẽ hiệu quả hơn.
Ở trường, học sinh làm quen với lập trình trực quan từ tiểu học; ở lớp 10, nhiều bộ sách Tin học dùng Python. Cho trẻ làm quen Python sớm vài năm giúp trẻ tự tin hơn khi lên cấp.
2. Cài đặt: dùng Thonny cho người mới
- Thonny là trình soạn thảo Python dành cho người mới học, đã gói sẵn Python. Tải ở trang chủ của Thonny (thonny.org), cài như phần mềm thường.
- Thonny có nút Run màu xanh (giống lá cờ xanh của Scratch), ô Shell để xem kết quả và gõ câu trả lời, ô Variables để xem giá trị các biến khi chương trình chạy.
- Có thể dùng IDLE đi kèm khi cài Python từ trang python.org. Thonny cũng là công cụ dùng để lập trình MicroPython cho mạch ESP32 sau này.
3. Khối Scratch nào ứng với lệnh Python nào?

Những điểm khác lớn nhất khi chuyển từ khối sang chữ:
- Thụt lề thay cho miệng khối chữ C. Các lệnh nằm "bên trong" vòng lặp hay câu điều kiện phải lùi vào 4 dấu cách. Thonny tự lùi khi bấm Enter sau dấu hai chấm.
- Dấu hai chấm ở cuối dòng
for,while,if,else. - Một dấu bằng là gán, hai dấu bằng là so sánh:
diem = 0đặt điểm thành 0;tra_loi == "56"hỏi "trả lời có bằng 56 không?". - Chuỗi chữ đặt trong ngoặc kép, số thì không:
"12"là chữ,12là số. - Thư viện: các khối "ngẫu nhiên", "đợi", "bút vẽ" nằm trong thư viện, phải gọi
import random,import time,import turtleở đầu chương trình.
4. Dự án 1: đố vui phép nhân

Đây là dự án đố vui trong bài 5 dự án Scratch đầu tiên, viết lại bằng Python. Đặt hai chương trình cạnh nhau, trẻ sẽ thấy mỗi khối ứng với một dòng lệnh:
# PYWORLD.VN - Đố vui phép nhân: cùng chương trình với dự án Scratch, viết bằng Python 3
# Chạy trên máy tính: mở bằng Thonny hoặc IDLE rồi bấm Run (F5)
# Mỗi khối Scratch ứng với một dòng lệnh, xem bảng trong bài
import random
diem = 0 # đặt điểm thành 0
for lan in range(10): # lặp lại 10 lần
a = random.randint(2, 9) # đặt a thành số ngẫu nhiên từ 2 đến 9
b = random.randint(2, 9)
tra_loi = input(f"{a} x {b} = ") # hỏi ... và đợi
if tra_loi == str(a * b): # nếu trả lời = a * b thì
print("Dung roi!") # nói "Đúng rồi!"
diem = diem + 1 # đổi điểm một lượng 1
else: # nếu không thì
print("Dap an la", a * b) # nói đáp án
print("Ban duoc", diem, "/ 10 diem") # nói số điểm
input()luôn trả về chữ, kể cả khi người chơi gõ số. Vì vậy chương trình so sánh vớistr(a * b), tức đáp án đã đổi sang chữ.f"{a} x {b} = "là cách ghép số vào câu hỏi: chữfđứng trước dấu ngoặc kép, biến đặt trong ngoặc nhọn.range(10)đếm từ 0 đến 9, tổng cộng 10 lần.
Thử thách: thêm câu đố phép cộng; đếm thời gian làm bài bằng time.time(); hỏi người chơi muốn chơi bao nhiêu câu.
5. Dự án 2: con rùa vẽ đa giác

Thư viện turtle của Python có một con rùa cầm bút, giống hệt nhóm khối Bút vẽ của Scratch. Đây là cách chuyển nhẹ nhàng nhất, vì trẻ vẫn "đi, xoay, vẽ" như đã quen:
# PYWORLD.VN - Vẽ đa giác đều và hoa văn bằng con rùa (turtle) của Python 3
# Giống nhóm khối Bút vẽ của Scratch: hạ bút, đi tới, xoay phải
# Đổi n để vẽ hình khác; đóng cửa sổ hình để kết thúc
import turtle
rua = turtle.Turtle()
rua.speed(0)
rua.pensize(3)
def da_giac(n, canh):
for i in range(n): # lặp lại n lần
rua.forward(canh) # di chuyển canh bước
rua.right(360 / n) # xoay phải 360 : n độ
n = 6
rua.penup() # nhấc bút, đi tới bên trái cửa sổ
rua.goto(-250, 50)
rua.pendown() # hạ bút
da_giac(n, 100)
# Hoa văn: 12 lần vẽ lục giác, mỗi lần xoay thêm 30 độ
rua.penup()
rua.goto(120, 0)
rua.pendown()
mau = ["red", "orange", "green", "blue", "purple", "deeppink"]
for k in range(12):
rua.color(mau[k % 6])
da_giac(6, 60)
rua.right(30)
turtle.done()
def da_giac(n, canh):tạo một hàm, giống khối "Tạo một khối" (khối tự định nghĩa) trong Scratch. Gọida_giac(6, 100)là vẽ lục giác cạnh 100.- Góc xoay 360 : n giống hệt bài vẽ đa giác bằng Scratch: đổi
n = 6thành 3, 4, 5, 8 để vẽ hình khác. penup(),pendown()là nhấc bút, hạ bút;goto(x, y)là "đi tới x, y".
6. Lỗi thường gặp khi mới chuyển sang Python
| Thông báo | Nghĩa | Cách sửa |
|---|---|---|
IndentationError | Thụt lề sai: thiếu hoặc thừa dấu cách đầu dòng | Các lệnh bên trong for, if lùi vào đúng 4 dấu cách, bằng nhau |
SyntaxError | Viết sai cú pháp, thường do thiếu dấu hai chấm hoặc thiếu ngoặc | Xem dòng báo lỗi và dòng ngay trên nó |
NameError | Dùng tên chưa có: gõ sai tên biến, quên import | So lại chữ hoa, chữ thường; thêm import random |
TypeError | Cộng chữ với số, như "Diem: " + 5 | Dùng print("Diem:", 5) hoặc str(5) |
ValueError | int(input()) nhưng người chơi gõ chữ | Nhắc người chơi gõ số; với học sinh lớn, học thêm try |
Hãy dạy trẻ đọc thông báo lỗi như một gợi ý chứ không phải lời chê: Python cho biết dòng nào sai và sai kiểu gì.
7. Gợi ý cho phụ huynh và giáo viên
- Học song song: không cần bỏ Scratch ngay. Dự án nào làm bằng Scratch xong, thử viết lại bằng Python.
- Gõ lại thay vì dán: cho trẻ tự gõ chương trình, kể cả có lỗi. Sửa lỗi gõ là phần học quan trọng nhất của tuần đầu.
- Trò chơi đoán lỗi: người lớn cố ý làm sai một dòng (bỏ dấu hai chấm, thụt lề lệch), trẻ đọc thông báo lỗi và tìm chỗ sai.
- Thời lượng: 3 buổi 45 phút: buổi 1 cài Thonny,
print, biến; buổi 2 đố vui phép nhân; buổi 3 con rùa vẽ hình. - Bước tiếp theo: MicroPython cho phép dùng chính ngôn ngữ Python để điều khiển đèn, cảm biến trên mạch ESP32.
8. Xem thêm
- 5 dự án Scratch đầu tiên cho trẻ (bản Scratch của dự án đố vui)
- Vẽ đa giác và hoa văn bằng lập trình: học góc trong môn Toán (bản Scratch của dự án con rùa)
- Trẻ mấy tuổi nên học lập trình? Lộ trình từ 4 đến 15 tuổi
- Bắt đầu MicroPython trên ESP32 với Thonny
Xem thêm