Bài 16: Ngôn ngữ lập trình bậc cao và Python – Lý thuyết

Ba dạng ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ, Python

I. Lý thuyết trọng tâm

1. Ngôn ngữ lập trình bậc cao

a) Ba bậc ngôn ngữ lập trình

Chương trình máy tính về bản chất là tập hợp các chỉ thị (lệnh) mà con người viết ra để máy tính thực hiện. Tùy vào mức độ gần gũi với con người hay với máy, ngôn ngữ lập trình được chia thành ba bậc:

Ba dạng ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ, Python
Ba dạng ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ, Python
Bậc Ngôn ngữ Đặc điểm Dễ đọc?
Thấp nhất Ngôn ngữ máy Viết hoàn toàn bằng mã nhị phân (0 và 1) Rất khó
Trung gian Hợp ngữ (Assembly) Dùng từ viết tắt tiếng Anh thay cho mã nhị phân Khó
Cao nhất Ngôn ngữ bậc cao Câu lệnh gần với ngôn ngữ tự nhiên Dễ

Điểm mấu chốt: Ngôn ngữ bậc cao giúp lập trình viên đọc và viết chương trình dễ dàng hơn nhiều so với ngôn ngữ máy hay hợp ngữ. Tuy nhiên, máy tính chỉ hiểu ngôn ngữ máy, nên chương trình viết bằng ngôn ngữ bậc cao cần được chương trình dịch chuyển đổi sang ngôn ngữ máy trước khi thực thi.

Một số ngôn ngữ bậc cao thông dụng hiện nay: Java, C/C++, Python

Câu hỏi kiểm tra nhanh: Viết chương trình bằng loại ngôn ngữ lập trình nào dễ nhất?

  • A. Ngôn ngữ máy
  • B. Hợp ngữ
  • C. Ngôn ngữ lập trình bậc cao ✔️

b) Giới thiệu Python

Python do Guido van Rossum (người Hà Lan) phát triển, ra mắt lần đầu năm 1991. Hiện tại Python là một trong những ngôn ngữ lập trình phổ biến nhất thế giới, đặc biệt trong lĩnh vực nghiên cứu và giáo dục.

Những ưu điểm nổi bật của Python:

Ưu điểm Giải thích
Cú pháp đơn giản Câu lệnh ngắn gọn, dễ đọc, dễ học
Đa nền tảng Chạy trên nhiều hệ điều hành (Windows, macOS, Linux), nhiều thiết bị (máy tính, điện thoại, robot giáo dục…)
Mã nguồn mở Miễn phí, thu hút cộng đồng lớn cùng phát triển
Thư viện phong phú Hỗ trợ trí tuệ nhân tạo, phân tích dữ liệu, kĩ thuật robot…

2. Môi trường lập trình Python

Phần mềm Python cung cấp một môi trường lập trình đầy đủ: soạn thảo chương trình, hỗ trợ gỡ lỗi, phân tích cú pháp và thực thi chương trình. Môi trường này hoạt động ở hai chế độ:

Màn hình IDLE Shell của Python
Màn hình IDLE Shell của Python

a) Chế độ gõ lệnh trực tiếp (Interactive Mode)

  • Gõ lệnh ngay sau dấu nhắc >>>, nhấn Enter để thực hiện.
  • Kết quả hiển thị ngay lập tức trên dòng tiếp theo.
  • Dùng khi nào? Tính toán nhanh, thử nghiệm và kiểm tra từng lệnh đơn lẻ.
>>> <lệnh Python>

b) Chế độ soạn thảo (Script Mode)

  • Mở cửa sổ soạn thảo bằng File → New File.
  • Viết chương trình hoàn chỉnh gồm nhiều dòng lệnh, mỗi lệnh trên một dòng.
  • Lưu tệp (Ctrl + S) rồi chạy bằng Run → Run Module (hoặc phím F5).
  • Dùng khi nào? Viết các chương trình có nhiều dòng lệnh, cần lưu lại để sử dụng sau.
Cửa sổ soạn thảo chương trình Python
Cửa sổ soạn thảo chương trình Python

So sánh hai chế độ:

Tiêu chí Gõ lệnh trực tiếp Soạn thảo
Cách mở Có sẵn khi khởi động (IDLE Shell) File → New File
Dấu hiệu nhận biết Có dấu nhắc >>> Không có dấu nhắc
Số lệnh Thường 1 lệnh/lần Nhiều lệnh, thành chương trình
Thực thi Nhấn Enter sau mỗi lệnh Nhấn F5 để chạy toàn bộ
Lưu file Không lưu được chương trình Lưu thành file .py
Mục đích Tính toán nhanh, kiểm tra lệnh Viết chương trình hoàn chỉnh

Lưu ý: Ngoài IDLE mặc định, có thể dùng các phần mềm khác để lập trình Python như Wingware, PyCharm, Thonny, Visual Studio

Câu hỏi kiểm tra nhanh: “Dấu nhắc >>> chính là con trỏ soạn thảo chương trình Python.” — Đúng hay sai?

Sai. Dấu nhắc >>> chỉ xuất hiện ở chế độ gõ lệnh trực tiếp (IDLE Shell). Trong cửa sổ soạn thảo chương trình không có dấu nhắc này.

3. Một số lệnh Python đầu tiên

a) Python tự nhận biết kiểu dữ liệu

Khi nhập giá trị từ dòng lệnh, Python tự động xác định kiểu dữ liệu dựa vào cách viết:

Cách nhập Python hiểu là Kiểu dữ liệu
5 Số nguyên 5 Số nguyên (int)
2.6 Số thực 2.6 Số thực (float)
"học sinh lớp 10" Xâu kí tự Xâu kí tự (string)

Quy tắc: Số không có phần thập phân → số nguyên. Số có dấu chấm thập phân → số thực. Nội dung đặt giữa cặp dấu nháy kép " " hoặc nháy đơn ' ' → xâu kí tự.

b) Các phép toán cơ bản với số

Python hỗ trợ các phép toán số học thông thường:

Phép toán Kí hiệu Ví dụ Kết quả
Cộng + 3 + 7 10
Trừ - 20 - 7 13
Nhân * 12 * 5 60
Chia / 5 / 2 2.5

Chú ý quan trọng: Phép chia / trong Python luôn trả về số thực (float), ngay cả khi chia hết. Ví dụ: 10 / 2 cho kết quả 5.0 chứ không phải 5.

c) Lệnh print() — xuất dữ liệu ra màn hình

Đây là lệnh cơ bản nhất để hiển thị thông tin. Cú pháp:

print(v1, v2, ..., vn)

Trong đó v1, v2, ..., vn là các giá trị cần in, phân cách bằng dấu phẩy.

Đặc điểm quan trọng của print():

  • In được một hoặc nhiều giá trị cùng lúc.
  • Nếu in nhiều giá trị, chúng hiển thị trên cùng một dòng, cách nhau bởi dấu cách.
  • Có thể tính toán biểu thức rồi in kết quả.

Ví dụ minh họa:

>>> print(12)
12

>>> print(10, 3.4 + 4.1, "hoà bình")
10 7.5 hoà bình

>>> print("Dãy ba số chẵn:", 2, 4, 6)
Dãy ba số chẵn: 2 4 6

>>> print("3 + 7 =", 3+7)
3 + 7 = 10

Phân biệt rõ: Nội dung trong dấu nháy " " được in nguyên văn (không tính toán). Nội dung ngoài dấu nháy được Python tính toán rồi mới in kết quả.

d) Kí hiệu chú thích #

Dòng bắt đầu bằng dấu #chú thích (comment), Python sẽ bỏ qua không thực thi. Dùng để giải thích ý nghĩa của lệnh, giúp chương trình dễ đọc hơn.

# Chương trình đầu tiên
print("Xin chào!")

II. Phương pháp giải các dạng bài tập

Dạng 1: Viết lệnh tính giá trị biểu thức trong Python

Phương pháp:

  • Bước 1: Xác định các phép toán trong biểu thức toán học.
  • Bước 2: Chuyển đổi kí hiệu toán học sang kí hiệu Python:
    • Phép nhân ×*
    • Phép chia ÷ hoặc //
    • Phép cộng, trừ giữ nguyên +, -
  • Bước 3: Gõ biểu thức sau dấu nhắc >>> và nhấn Enter.

Lưu ý thứ tự ưu tiên: Nhân * và chia / được thực hiện trước cộng + và trừ -, giống toán học. Muốn thay đổi thứ tự thì dùng dấu ngoặc tròn ().

Bài tập mẫu (SGK – Luyện tập, bài 1): Viết lệnh tính giá trị các biểu thức sau trong chế độ gõ lệnh trực tiếp:

a) $10 + 13$   b) $20 – 7$   c) $3 \times 10 – 16$   d) $12/5 + 13/6$

Lời giải:

>>> 10 + 13
23

>>> 20 - 7
13

>>> 3 * 10 - 16
14

>>> 12/5 + 13/6
4.566666666666666

Giải thích câu c: 3 * 10 - 16 → nhân trước: 30 - 16 = 14.

Giải thích câu d: 12/5 + 13/6 → chia trước: 2.4 + 2.1666... ≈ 4.5667. Phép chia / trả về số thực nên kết quả là số thực.

Dạng 2: Phát hiện và giải thích lỗi cú pháp

Phương pháp:

Khi kiểm tra lệnh Python, chú ý các lỗi cú pháp thường gặp:

Loại lỗi Dấu hiệu Ví dụ sai
Hai toán tử liền nhau +*, -/, */… không hợp lệ 3 + * 5
Dấu nháy lồng nhau cùng loại Dấu " bên trong xâu " " gây nhầm lẫn "bạn tên là "Nguyễn"
Thiếu toán tử giữa hai số Hai số đặt cạnh nhau không có phép toán 5 2
Thiếu dấu nháy Xâu kí tự không đóng mở đúng cặp print("hello)

Bài tập mẫu (SGK – Luyện tập, bài 2): Các lệnh sau có lỗi không? Vì sao?

>>> 3 + * 5
>>> "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh""

Lời giải:

Lệnh 1: 3 + * 5Có lỗi. Hai toán tử +* đặt liền nhau, giữa chúng không có giá trị nào. Python không hiểu phải thực hiện phép toán gì. Sửa đúng tùy ý định, ví dụ: 3 + 5 hoặc 3 * 5.

Lệnh 2: "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh""Có lỗi. Dấu nháy kép trước chữ “Nguyễn” bị Python hiểu là kết thúc xâu, khiến phần Nguyễn Việt Anh"" nằm ngoài xâu và gây lỗi cú pháp. Cách sửa: dùng dấu nháy đơn cho xâu bên trong, ví dụ: "Bạn là học sinh, bạn tên là 'Nguyễn Việt Anh'".

Dạng 3: Viết lệnh print() xuất thông tin ra màn hình

Phương pháp:

  • Bước 1: Xác định phần nào là văn bản cố định (in nguyên văn) → đặt trong dấu nháy " ".
  • Bước 2: Xác định phần nào là biểu thức cần tính → viết ngoài dấu nháy.
  • Bước 3: Ghép các phần bằng dấu phẩy , trong lệnh print().

Mẹo: Khi muốn in cả biểu thức lẫn kết quả (ví dụ 3 + 7 = 10), ta viết biểu thức dưới dạng xâu "3 + 7 =" kèm biểu thức tính 3+7 cách nhau bởi dấu phẩy.

Bài tập mẫu (SGK – Luyện tập, bài 3): Viết lệnh in ra màn hình thông tin sau:

a) 1 × 3 × 5 × 7 = 105

b) Bạn Hoa năm nay 16 tuổi.

Lời giải:

# Câu a
>>> print("1 x 3 x 5 x 7 =", 1*3*5*7)
1 x 3 x 5 x 7 = 105

Giải thích: Phần "1 x 3 x 5 x 7 =" in nguyên văn, phần 1*3*5*7 được Python tính ra 105 rồi in.

# Câu b
>>> print("Bạn Hoa năm nay 16 tuổi.")
Bạn Hoa năm nay 16 tuổi.

Giải thích: Toàn bộ nội dung là văn bản cố định, chỉ cần đặt trong dấu nháy kép.

Dạng 4: Xác định kết quả và kiểu dữ liệu của lệnh

Phương pháp:

  • Bước 1: Xác định phép toán và thứ tự thực hiện (nhân/chia trước, cộng/trừ sau).
  • Bước 2: Tính kết quả.
  • Bước 3: Xác định kiểu dữ liệu kết quả theo quy tắc:
    • Phép /luôn cho số thực (float)
    • Số nguyên ± số nguyên, số nguyên × số nguyên → số nguyên (int)
    • Có số thực tham gia phép tính → kết quả là số thực (float)
    • Nội dung trong dấu nháy → xâu kí tự (string)

Bài tập mẫu (SGK – Câu hỏi mục 3, bài 1): Kết quả của mỗi lệnh sau là gì? Kết quả đó có kiểu dữ liệu nào?

Lời giải:

Lệnh Kết quả Kiểu dữ liệu Giải thích
>>> 5/2 2.5 Số thực (float) Phép chia / luôn cho số thực
>>> 12 + 1.5 13.5 Số thực (float) Có số thực 1.5 tham gia → kết quả là số thực
>>> "Bạn là học sinh lớp 10" 'Bạn là học sinh lớp 10' Xâu kí tự (string) Nội dung trong dấu nháy kép → xâu kí tự
>>> 10 + 7/2 13.5 Số thực (float) 7/2 = 3.510 + 3.5 = 13.5 (có phép chia → số thực)

III. Sơ đồ tư duy

1. Ngôn ngữ lập trình bậc cao

  • 1.1. Ba bậc: ngôn ngữ máy → hợp ngữ → ngôn ngữ bậc cao
  • 1.2. Đặc điểm: câu lệnh gần ngôn ngữ tự nhiên, dễ đọc hiểu
  • 1.3. Cần chương trình dịch để chuyển sang ngôn ngữ máy
  • 1.4. Các ngôn ngữ phổ biến: Java, C/C++, Python

2. Giới thiệu Python

  • 2.1. Tác giả: Guido van Rossum (Hà Lan), ra mắt năm 1991
  • 2.2. Ưu điểm: cú pháp đơn giản, đa nền tảng, mã nguồn mở, thư viện phong phú
  • 2.3. Ứng dụng: nghiên cứu, giáo dục, AI, phân tích dữ liệu

3. Môi trường lập trình Python

  • 3.1. Chế độ gõ lệnh trực tiếp: dấu nhắc >>>, nhấn Enter → thực thi ngay
  • 3.2. Chế độ soạn thảo: File → New File, viết nhiều dòng lệnh, chạy bằng F5
  • 3.3. Phần mềm hỗ trợ: IDLE, PyCharm, Thonny, Visual Studio…

4. Các lệnh Python đầu tiên

  • 4.1. Python tự nhận biết kiểu dữ liệu (số nguyên, số thực, xâu kí tự)
  • 4.2. Phép toán: + (cộng), - (trừ), * (nhân), / (chia)
  • 4.3. Lệnh print(): in một hoặc nhiều giá trị, có thể tính biểu thức
  • 4.4. Kí hiệu #: dòng chú thích, Python bỏ qua

IV. Sai lầm thường gặp

Sai lầm Đính chính
Nhầm lẫn dấu nhắc >>> xuất hiện ở cả hai chế độ Dấu nhắc >>> chỉ có ở chế độ gõ lệnh trực tiếp. Cửa sổ soạn thảo chương trình không có dấu nhắc.
Dùng dấu × (nhân toán học) hoặc ÷ (chia) trong Python Python dùng * cho phép nhân và / cho phép chia. Viết × hay ÷ sẽ báo lỗi.
Nghĩ rằng 5/2 cho kết quả 2 (số nguyên) Phép chia / trong Python luôn trả về số thực: 5/2 = 2.5, thậm chí 10/2 = 5.0 (không phải 5).
Lồng dấu nháy kép trong dấu nháy kép: "Tên là "Hoa"" Dấu nháy kép bên trong bị hiểu là kết thúc xâu → lỗi. Cách sửa: dùng nháy đơn bên trong "Tên là 'Hoa'" hoặc ngược lại.
Nhầm lẫn giữa in nguyên văntính toán trong print() Nội dung trong dấu nháy " " → in nguyên văn. Nội dung ngoài dấu nháy → Python tính toán rồi in kết quả. Ví dụ: print("3+7") in ra 3+7, còn print(3+7) in ra 10.
Viết hai toán tử liền nhau: 3 + * 5 Python không cho phép hai toán tử liền nhau mà không có giá trị ở giữa. Phải viết rõ ràng: 3 + 5 hoặc 3 * 5.
Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa