Buổi 1: Làm quen với Python

Hôm nay em sẽ học

  1. Viết và chạy chương trình Python đầu tiên
  2. Dùng lệnh print để máy tính "nói"
  3. Dùng Python như một chiếc máy tính siêu mạnh
  4. Đọc thông báo lỗi và tự sửa lỗi

Bấm vào slide rồi dùng phím ← → để chuyển, phím F để xem toàn màn hình.

Mở toàn màn hình

1. Kiến thức chính

Viết và chạy chương trình

  1. Mở Thonny, gõ chương trình vào ô soạn thảo.
  2. Bấm Ctrl + S để lưu. Tên file không dấu, không khoảng trắng, đuôi .py (ví dụ bai1.py).
  3. Bấm F5 để chạy. Kết quả hiện ở ô Shell phía dưới.

Lệnh print – cho máy tính "nói"

print("Xin chào")         # chữ phải nằm trong dấu nháy
print(2026)               # số thì không cần dấu nháy
print("Năm nay là", 2026) # nhiều thứ cách nhau dấu phẩy
print()                   # in một dòng trống
Kết quả
Xin chào
2026
Năm nay là 2026
Khi in nhiều thứ cách nhau bởi dấu phẩy, Python tự thêm một dấu cách ở giữa.

Các phép toán

Phép toánKý hiệuVí dụKết quả
Cộng, trừ, nhân+ - *7 * 856
Chia (luôn ra số thực)/17 / 53.4
Chia lấy phần nguyên//17 // 53
Chia lấy dư%17 % 52
Lũy thừa**2 ** 101024

Chia 17 cái kẹo cho 5 bạn: mỗi bạn được 17 // 5 = 3 cái, còn dư 17 % 5 = 2 cái.

n % 10 lấy chữ số cuối, n // 10 bỏ chữ số cuối. Hai phép // và % dùng rất nhiều trong đề thi!

Python tính được số rất lớn và chính xác từng chữ số: print(2 ** 100) in ra 1267650600228229401496703205376.

Phép nhân chữ và nối chữ

print("*" * 10)              # lặp lại chữ 10 lần
print("ha" * 3)
print("Tin" + " hoc " + "tre")  # nối các chữ lại
Kết quả
**********
hahaha
Tin hoc tre

Chú thích

Dòng (hoặc phần cuối dòng) bắt đầu bằng dấu # là chú thích – Python bỏ qua, dùng để ghi chú cho người đọc.

2. Ghi nhớ và lỗi thường gặp

Em viếtPython báoSửa lại
Print("A")NameErrorprint viết thường – Python phân biệt chữ hoa, chữ thường
print("A"SyntaxErrorthiếu ngoặc đóng )
print(A)NameErrorchữ phải có dấu nháy: "A"
print(3,5)in ra 3 5số thập phân dùng dấu chấm: 3.5

Khi gặp lỗi: đọc dòng cuối của thông báo (loại lỗi) và số line (dòng bị lỗi), sửa, lưu, chạy lại.

3. Câu hỏi tự kiểm tra

  1. Lệnh print(7 // 2, 7 % 2) in ra gì?
  2. Lệnh print("ab" * 3 + "!") in ra gì?
  3. Python báo NameError: name 'Print' is not defined. Lỗi ở đâu, sửa thế nào?

4. Bài tập về nhà

Bài 1 ★ – KHUNGTEN

In tên của em trong một khung bằng dấu *. Ví dụ với tên Nguyen An:

Kết quả
**************
* Nguyen An  *
**************

Bài 2 ★ – GIAYNAM

Một năm (không nhuận) có 365 ngày. Viết chương trình tính và in ra số giây trong một năm.

Bài 3 ★★ – THU1000

Hôm nay là thứ Hai. Hỏi 1000 ngày nữa là thứ mấy?

Viết chương trình tính bằng phép %, rồi dùng bảng sau để trả lời:

Số dư0123456
ThứHaiBaTưNămSáuBảyChủ nhật

Bài 4 ★★★ (thử thách) – TRIEUGIAY

1 000 000 giây bằng bao nhiêu ngày, giờ, phút, giây?

Chỉ dùng // và %. Chương trình in ra 4 số trên một dòng: ngày, giờ, phút, giây.

Gợi ý: 1 ngày = 86400 giây, 1 giờ = 3600 giây, 1 phút = 60 giây.
Cách nộp bài: mỗi bài một file .py đặt tên theo tên bài (ví dụ KHUNGTEN.py). Chạy thử trước khi nộp!

Đáp án câu hỏi tự kiểm tra

  1. In ra 3 1 (7 chia 2 được 3, dư 1).
  2. In ra ababab!
  3. Viết Print với chữ P hoa. Python phân biệt chữ hoa và chữ thường, phải viết print.

Bài 1 – KHUNGTEN

Ý tưởng

Dòng trên và dòng dưới là dấu * lặp lại nhiều lần – dùng phép nhân chữ. Dòng giữa gồm *, tên, dấu cách và *.

Đếm số ký tự của dòng giữa để biết dòng trên/dưới cần bao nhiêu dấu *: * Nguyen An * có 14 ký tự.

Lời giải

Lời giải
print("*" * 14)
print("* Nguyen An  *")
print("*" * 14)
Kết quả
**************
* Nguyen An  *
**************
Tên của em dài hơn hay ngắn hơn thì đếm lại số ký tự và sửa số 14 cho khớp.

Bài 2 – GIAYNAM

Ý tưởng

1 năm = 365 ngày, 1 ngày = 24 giờ, 1 giờ = 60 phút, 1 phút = 60 giây. Nhân tất cả lại.

Lời giải

Lời giải
print(365 * 24 * 60 * 60)
Kết quả
31536000

Bài 3 – THU1000

Ý tưởng

Cứ 7 ngày thì lại quay về thứ Hai. Vì vậy chỉ cần biết 1000 ngày là bao nhiêu tuần và dư mấy ngày: dùng 1000 % 7.

Lời giải

Lời giải
print(1000 % 7)
Kết quả
6

Số dư là 6. Tra bảng: 6 ứng với Chủ nhật. Vậy 1000 ngày nữa là Chủ nhật.

Kiểm tra bằng số nhỏ: 7 ngày nữa → 7 % 7 = 0 → thứ Hai (đúng!). 8 ngày nữa → dư 1 → thứ Ba.

Bài 4 – TRIEUGIAY

Ý tưởng

Làm từ đơn vị lớn đến nhỏ:

  1. Số ngày = 1000000 // 86400. Phần giây còn lại = 1000000 % 86400.
  2. Từ phần còn lại: số giờ = còn lại // 3600, rồi phần còn lại % 3600.
  3. Tương tự cho phút (// 60) và giây (% 60).

Lời giải

Lời giải
print(1000000 // 86400, 1000000 % 86400 // 3600, 1000000 % 3600 // 60, 1000000 % 60)
Kết quả
11 13 46 40

Vậy 1 000 000 giây = 11 ngày 13 giờ 46 phút 40 giây.

Vì 86400 chia hết cho 3600, nên 1000000 % 3600 cũng chính là phần giây lẻ sau khi đã bỏ các giờ trọn vẹn. Em có thể viết dài hơn cho dễ hiểu – buổi sau học biến sẽ viết gọn hơn nhiều.

Lỗi hay gặp khi làm bài

  • Quên dấu nháy khi in chữ, hoặc dùng dấu nháy "cong" khi copy từ Word.
  • Dùng / thay cho // nên ra số thực như 11.574074….

Mục tiêu

  • Mở Thonny, viết và chạy được chương trình đầu tiên.
  • Dùng print() in chữ và số; dùng Python như một chiếc máy tính: + - * / // % **.
  • Đọc được thông báo lỗi đơn giản và tự sửa.

Chuẩn bị: Máy cài Python 3 (https://www.python.org) và Thonny (https://thonny.org).


1. Khởi động (10')

Hỏi HS: "Trong Scratch, muốn mèo nói 'Xin chào' em dùng khối nào?" → khối nói [Xin chào].

"Trong Python, ta không kéo khối nữa mà gõ lệnh":

print("Xin chào")

Cho HS mở Thonny, gõ, bấm Run (F5). Lưu file tên bai1.py (không dấu, không khoảng trắng).

2. Kiến thức mới (25')

2.1. Lệnh print

print("Xin chào các em")      # in một xâu (chữ đặt trong dấu nháy)
print(2026)                   # in một số
print("Năm nay là", 2026)     # in nhiều thứ, Python tự thêm dấu cách ở giữa
print()                       # in một dòng trống
Dòng bắt đầu bằng # là chú thích, Python bỏ qua – giống "ghi chú" trong Scratch.

2.2. Python là máy tính

Phép toánKý hiệuVí dụKết quả
Cộng, trừ, nhân+ - *7 * 856
Chia/17 / 53.4 (luôn ra số thực)
Chia lấy phần nguyên//17 // 53
Chia lấy dư (mod trong Scratch)%17 % 52
Lũy thừa**2 ** 101024
print(17 // 5, 17 % 5)    # 3 2
print((2 + 3) * 4)        # 20 – dùng ngoặc như toán học
print(2 ** 100)           # Python tính được số rất lớn, Scratch thì không!

// và % là hai phép quan trọng nhất trong thi lập trình – nhấn mạnh ngay từ buổi đầu.

2.3. Phép nhân xâu

print("*" * 10)     # **********
print("ha" * 3)     # hahaha

2.4. Cố tình gây lỗi để đọc lỗi

Cho HS gõ sai từng dòng, xem Python báo gì:

Print("A")        # NameError: name 'Print' is not defined  → Python phân biệt chữ hoa/thường
print("A"         # SyntaxError: thiếu ngoặc đóng
print(A)          # NameError: quên dấu nháy

Thói quen cần tạo: đọc dòng cuối thông báo lỗi + số dòng (line …) trước khi hỏi thầy/cô.

3. Luyện tập (45')

Bài 1 ★ – Giới thiệu bản thân. In ra 3 dòng: họ tên, lớp, trường của em.

Bài 2 ★ – Máy tính bỏ túi. Viết chương trình in ra (mỗi kết quả một dòng):

123 × 456, 2026 chia lấy phần nguyên cho 7, 2026 chia lấy dư cho 7, 2 mũ 20.

Bài 3 ★★ – Vẽ hình bằng ký tự. In ra đúng hình sau (dùng phép nhân xâu):

*
**
***
****

Bài 4 ★★ – Đổi thời gian. 10000 giây bằng bao nhiêu giờ, phút, giây?

Chỉ dùng // và %, in ra 2 46 40.

Bài 5 ★★★ – Thứ mấy? Hôm nay là thứ Hai. Hỏi 100 ngày nữa là thứ mấy?

Gợi ý: đánh số thứ Hai = 0, thứ Ba = 1, …, Chủ nhật = 6.

4. Tổng kết & bài về nhà (10')

  • HS tự nói lại: print dùng làm gì? // khác / thế nào? % dùng làm gì?
  • BTVN:
    1. In tên của em trong một khung sao (dòng trên/dưới là dấu *).
    2. Tính số giây trong một năm (365 ngày).
    3. Tính 1000 ngày nữa (kể từ thứ Hai) là thứ mấy.

Lỗi thường gặp

  • Quên dấu nháy / dùng nháy "thông minh" (“ ”) khi copy từ Word.
  • Viết Print, PRINT.
  • Dùng dấu phẩy thập phân 3,5 thay vì dấu chấm 3.5.

Đáp án (dành cho giáo viên)

# Bài 2
print(123 * 456)     # 56088
print(2026 // 7)     # 289
print(2026 % 7)      # 3
print(2 ** 20)       # 1048576

# Bài 3
print("*" * 1)
print("*" * 2)
print("*" * 3)
print("*" * 4)

# Bài 4
print(10000 // 3600, 10000 % 3600 // 60, 10000 % 60)   # 2 46 40

# Bài 5: 100 % 7 = 2 → thứ Hai + 2 = thứ Tư
print(100 % 7)

# BTVN 2
print(365 * 24 * 60 * 60)   # 31536000
# BTVN 3: 1000 % 7 = 6 → thứ Hai + 6 = Chủ nhật
Zalo