Tin học 10 – Bài 16. Ngôn ngữ lập trình bậc cao và Python

Mục tiêu bài học

  • Về kiến thức:
    • Nắm được khái niệm về ngôn ngữ lập trình bậc cao và cụ thể là ngôn ngữ Python.
    • Phân biệt rõ ràng hai chế độ làm việc của Python: chế độ gõ lệnh trực tiếp và chế độ soạn thảo.
    • Biết các bước cơ bản để tạo và thực thi một chương trình Python hoàn chỉnh.
  • Về kĩ năng:
    • Thực hành thành thạo việc tạo và chạy một chương trình đơn giản bằng Python.
  • Về phẩm chất:
    • Phát triển ý thức trách nhiệm và sự cẩn thận khi làm việc.
    • Rèn luyện đức tính chăm chỉ, chuyên cần để hoàn thành tốt các nhiệm vụ được giao.

Mức độ kiến thức và kĩ năng cần đạt

  • Nhận biết:
    • Định nghĩa được “ngôn ngữ lập trình bậc cao”.
    • Kể tên được một vài ngôn ngữ lập trình bậc cao phổ biến (Python, Java, C/C++).
    • Nhận diện được hai chế độ làm việc của Python: gõ lệnh trực tiếp (qua dấu nhắc >>>) và soạn thảo chương trình (qua cửa sổ soạn thảo).
    • Nhận biết được các kiểu dữ liệu cơ bản qua ví dụ: số nguyên, số thực, xâu kí tự.
  • Thông hiểu:
    • Giải thích được tại sao ngôn ngữ lập trình bậc cao lại dễ đọc, dễ viết hơn ngôn ngữ máy và hợp ngữ.
    • Phân biệt được sự khác nhau và mục đích sử dụng của chế độ gõ lệnh trực tiếp và chế độ soạn thảo.
    • Hiểu được chức năng và cách hoạt động cơ bản của lệnh print().
  • Vận dụng:
    • Sử dụng chế độ gõ lệnh trực tiếp để thực hiện các phép tính số học đơn giản.
    • Viết, lưu và chạy được một chương trình Python đơn giản trong chế độ soạn thảo.
    • Sử dụng lệnh print() để in ra màn hình các giá trị, chuỗi kí tự và kết quả của biểu thứ

Hoạt động khởi động

Tin học 10 - Bài 16
Em hãy quan sát các đoạn chương trình được viết bằng các ngôn ngữ lập trình khác nhau trong Hình 16.1 và cho biết câu lệnh trong ngôn ngữ nào dễ hiểu nhất?

Trong ba loại ngôn ngữ được minh họa, Python là ngôn ngữ dễ hiểu nhất.
+ Ngôn ngữ máy: Sử dụng mã nhị phân (gồm các số 0 và 1), rất khó để con người đọc và hiểu trực tiếp.
+ Hợp ngữ (Assembly): Sử dụng các từ viết tắt (thường bằng tiếng Anh) để thực hiện lệnh, dễ hiểu hơn ngôn ngữ máy nhưng vẫn còn phức tạp.
+ Ngôn ngữ Python: Sử dụng các câu lệnh gần với ngôn ngữ tự nhiên (tiếng Anh), giúp người đọc dễ dàng hiểu được mục đích và logic của chương trình.

Vì vậy, câu lệnh trong ngôn ngữ Python là dễ hiểu nhất.


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

Ngôn ngữ lập trình là công cụ để con người viết ra các chỉ thị, “ra lệnh” cho máy tính thực hiện một công việc cụ thể. Có ba loại ngôn ngữ lập trình chính:

  • Ngôn ngữ máy: Là chuỗi các số nhị phân 0 và 1, loại ngôn ngữ duy nhất máy tính có thể hiểu trực tiếp.
  • Hợp ngữ: Sử dụng các từ gợi nhớ (thường là viết tắt tiếng Anh) thay cho mã máy, giúp việc lập trình dễ hơn (nhưng vẫn còn khó nhớ).
  • Ngôn ngữ bậc cao: Sử dụng các câu lệnh gần với ngôn ngữ tự nhiên của con người (ví dụ: tiếng Anh).
    → Làm cho việc viết, đọc, hiểu và sửa lỗi chương trình trở nên thuận tiện hơn rất nhiều.

Các chương trình viết bằng ngôn ngữ bậc cao cần chương trình chương trình dịch để chuyển đổi chúng sang ngôn ngữ máy để máy tính có thể hiểu và thực thi.

1. Ngôn ngữ lập trình là gì? Có những loại ngôn ngữ lập trình nào?

Ngôn ngữ lập trình là công cụ giúp con người có thể “lập trình” để giải các bài toán trên máy tính. Các loại ngôn ngữ lập trình có thể là ngôn ngữ máy, hợp ngữ hoặc ngôn ngữ lập trình bậc cao.

2. Hãy kể tên một số ngôn ngữ lập trình bậc cao mà em biết.

Một số ngôn ngữ lập trình bậc cao phổ biến hiện nay bao gồm: Python, Java, C/C++, C#, JavaScript, PHP,…


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

Python là một ngôn ngữ lập trình bậc cao do Guido van Rossum tạo ra vào năm 1991. Cú pháp đơn giản, mã nguồn mở và được ứng dụng rộng rãi trong nhiều lĩnh vực.

Môi trường lập trình với Python có hai chế độ làm việc chính:

Chế độMô tảTrường hợp sử dụng
Gõ lệnh trực tiếp (Interactive Mode)Gõ từng lệnh sau dấu nhắc >>> và nhấn Enter, máy tính sẽ thực thi và trả kết quả ngay lập tức.Để tính toán nhanh, kiểm tra thử một vài lệnh đơn lẻ.
Soạn thảo chương trình (Script Mode)Viết một tập hợp nhiều câu lệnh vào một tệp (file), sau đó lưu lại và thực thi toàn bộ tệp chương trình cùng lúc.Viết các chương trình hoàn chỉnh có nhiều dòng lệnh phức tạp.

Tin học 10 - Bài 16
Tin học 10 - Bài 16
1. 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 >>> là nơi để nhập lệnh trong chế độ gõ lệnh trực tiếp. Con trỏ soạn thảo là vạch đứng nhấp nháy cho biết vị trí nhập văn bản trong cửa sổ soạn thảo chương trình.

2. Việc thực hiện câu lệnh ở chế độ gõ lệnh trực tiếp và chế độ soạn thảo có điểm gì giống nhau, khác nhau?

Giống nhau: Đều viết các câu lệnh Python trên từng dòng riêng biệt.
Khác nhau:
+ Chế độ gõ lệnh trực tiếp: Gõ một lệnh và nhấn Enter, lệnh sẽ được thực thi ngay lập tức.
+ Chế độ soạn thảo: Gõ nhiều lệnh vào một tệp, sau đó phải lưu tệp và chạy (Run) thì toàn bộ các lệnh mới được thực thi một lần.


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

Python có thể tự động nhận diện các kiểu dữ liệu cơ bản và thực hiện các phép toán trực tiếp.

  • Số nguyên (integer): Ví dụ: 5, 10, -100
  • Số thực (float): Ví dụ: 2.6, 3.14, -0.5
  • Xâu kí tự (string): Chuỗi các kí tự đặt trong cặp dấu nháy đơn ' ' hoặc nháy kép " ". Ví dụ: "học sinh lớp 10A"

Lệnh print() là lệnh cơ bản dùng để hiển thị (in) dữ liệu ra màn hình.
Cú pháp: print(giá_trị_1, giá_trị_2, ...)

Chú ý: Khi hàm print() nhận nhiều đối số đầu vào, các giá trị sẽ được hiển thị trên cùng một dòng và phân tách nhau mặc định bởi một khoảng trắng.

1. Kết quả của mỗi lệnh sau là gì? Kết quả đó có kiểu dữ liệu nào?

Câu lệnhKết quả
>>> 5/2  2.5, kiểu dữ liệu là số thực.
>>> 12 + 1.5  13.5, kiểu dữ liệu là số thực.
>>> "Bạn là học sinh lớp 10"  ‘Bạn là học sinh lớp 10’, kiểu dữ liệu là xâu kí tự.
>>> 10 + 7/2  13.5 (vì 7/2 = 3.5), kiểu dữ liệu là số thực.

2. Lệnh sau sẽ in ra kết quả gì?
>>> print("13 + 103/2 – 32 = ", 13 + 103/2 – 32)

Lệnh này sẽ in ra kết quả: 13 + 10*3/2 – 3*2 = 22.0
+ Phần trong dấu ngoặc kép "13 + 10*3/2 – 3*2 = " được in ra nguyên văn.
+ Biểu thức 13 + 10*3/2 – 3*2 được Python tính toán (13 + 15.0 – 6 = 22.0) và in giá trị kết quả ra sau đó.


Luyện tập

1. Hãy viết lệnh để tính giá trị các biểu thức sau trong chế độ gõ lệnh trực tiếp của Python:

a) 10 + 13
>>> 10 + 13
23

b) 20 – 7
>>> 20 - 7
13

c) 3 × 10 – 16
>>> 3 * 10 - 16
14

d) 12/5 + 13/6
>>> 12/5 + 13/6
4.566666666666667

2. Các lệnh sau có lỗi không? Vì sao?

Cả hai lệnh dưới đây đều có lỗi:
Lệnh thứ nhất:
>>> 3 + * 5
Lỗi cú pháp (SyntaxError). Lý do là có hai phép toán (+ và *) đứng cạnh nhau mà không có toán hạng (số) ở giữa. Đây là một biểu thức toán học không hợp lệ.

Lệnh thứ hai:
>>> "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh""
Lỗi cú pháp (SyntaxError). Lý do là Python hiểu xâu kí tự bắt đầu và kết thúc bằng cặp dấu nháy kép “”. Trong trường hợp này, xâu “Bạn là học sinh, bạn tên là ” kết thúc trước chữ Nguyễn. Phần còn lại Nguyễn Việt Anh”” trở nên không hợp lệ.
Để sửa lỗi, ta có thể dùng dấu nháy đơn để bao bọc toàn bộ xâu:
>>> 'Bạn là học sinh, bạn tên là "Nguyễn Việt Anh"'

3. Viết các lệnh in ra màn hình thông tin như sau:

a) 1 × 3 × 5 × 7 = 105.
>>> print("1 x 3 x 5 x 7 =", 1*3*5*7)

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


Vận dụng

1. Ngoài cách viết xâu kí tự giữa cặp dấu nháy đơn hoặc nháy kép còn có thể viết giữa cặp ba dấu nháy kép. Nếu một xâu được viết giữa cặp ba dấu nháy kép thì chúng ta có thể dùng phím Enter để xuống dòng ở giữa xâu. Hãy thực hiện lệnh sau và quan sát kết quả:

Khi thực hiện lệnh:
>>> print("""Không có việc gì khó
Chỉ sợ lòng không bền
Đào núi và lấp biển
Quyết chí ắt làm nên""")

Kết quả in ra màn hình sẽ là một đoạn thơ gồm 4 dòng, giữ nguyên định dạng xuống dòng như khi nhập:
Không có việc gì khó
Chỉ sợ lòng không bền
Đào núi và lấp biển
Quyết chí ắt làm nên

Giải thích: Việc sử dụng ba dấu nháy kép """ """ (hoặc ba dấu nháy đơn ''' ''') cho phép tạo ra một xâu kí tự đa dòng (multi-line string), bao gồm cả các ký tự xuống dòng khi ta nhấn phím Enter.

2. Viết chương trình Python in ra màn hình bảng nhân trong phạm vi 10.

Để in ra bảng cửu chương từ 2 đến 9, bạn có thể tạo một chương trình trong chế độ soạn thảo như sau:

# In bảng cửu chương 2
print("--- Bảng cửu chương 2 ---")
print("2 x 1 =", 2*1)
print("2 x 2 =", 2*2)
print("2 x 3 =", 2*3)
print("2 x 4 =", 2*4)
print("2 x 5 =", 2*5)
print("2 x 6 =", 2*6)
print("2 x 7 =", 2*7)
print("2 x 8 =", 2*8)
print("2 x 9 =", 2*9)
print("2 x 10 =", 2*10)

# In bảng cửu chương 3
print("--- Bảng cửu chương 3 ---")
print("3 x 1 =", 3*1)
# ... và tiếp tục tương tự cho các dòng còn lại của bảng 3

# ... và tiếp tục cho các bảng cửu chương khác đến 9

Lưu ý: Ở các bài học sau, chúng ta sẽ học cách dùng vòng lặp để viết chương trình này một cách ngắn gọn hơn rất nhiều.


Câu hỏi trắc nghiệm tin học 10 bài 16 - Ngôn ngữ lập trình bậc cao và Python

Thời gian làm bài: 30 phút
Đáp án hiển thị sau khi nộp bài
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Đặc điểm nào sau đây là của ngôn ngữ lập trình bậc cao?

NB

Phương án nào sau đây KHÔNG phải là một ngôn ngữ lập trình bậc cao?

TH

Vì sao các chương trình viết bằng ngôn ngữ bậc cao cần phải có một "chương trình dịch"?

NB

Trong môi trường lập trình Python (IDLE), ký hiệu nào cho biết người dùng đang ở trong chế độ gõ lệnh trực tiếp?

TH

Mục đích chính của chế độ gõ lệnh trực tiếp trong Python là gì?

TH

Điểm khác biệt cơ bản giữa việc thực thi lệnh trong chế độ soạn thảo và chế độ gõ lệnh trực tiếp là gì?

VD

An muốn viết một chương trình Python gồm 5 dòng lệnh để tính chu vi hình chữ nhật và muốn lưu lại để sử dụng cho lần sau. An nên sử dụng chế độ làm việc nào?

NB

Trong Python, lệnh print() có chức năng chính là gì?

TH

Khi thực hiện lệnh print(15 / 4) trong Python, kết quả nào sẽ được hiển thị ra màn hình?

VD

Kết quả hiển thị ra màn hình sau khi thực hiện câu lệnh print("Kết quả là:", 10 + 5 * 2) là gì?

VD

Lệnh nào sau đây sẽ gây ra lỗi cú pháp (SyntaxError) trong Python?

TH

Khi thực hiện lệnh print("Python", 10, "KHTN"), các giá trị được in ra màn hình sẽ được ngăn cách với nhau bởi ký tự gì?

Một nhóm học sinh đang tranh luận về việc lựa chọn ngôn ngữ lập trình cho dự án "Máy tính bỏ túi đơn giản". Bạn Nam đề xuất dùng Python vì cho rằng nó dễ học. Bạn Minh lại cho rằng nên dùng ngôn ngữ máy để máy tính chạy nhanh hơn.
Dưới đây là một số nhận định về tình huống trên:

NB Python là một ví dụ về ngôn ngữ lập trình bậc cao.

TH Chương trình viết bằng Python có thể được máy tính hiểu và thực thi ngay lập tức mà không cần qua bước trung gian nào.

TH Lập luận của Nam rằng Python dễ học là hợp lí vì cú pháp của nó gần với ngôn ngữ tự nhiên.

VD Nếu nhóm chọn Python, sản phẩm cuối cùng vẫn cần một chương trình dịch để chuyển đổi mã lệnh sang ngôn ngữ máy trước khi thực thi.

Bình đang sử dụng cửa sổ Python Shell (có dấu nhắc >>>). Bình gõ lệnh 2 * (5 + 10) và nhấn Enter, máy tính hiển thị kết quả là 30. Sau đó, Bình mở một cửa sổ mới bằng cách chọn File/New File và gõ lệnh print("Xin chào").
Dưới đây là một số nhận định về tình huống trên:

NB Cửa sổ có dấu nhắc >>> mà Bình đang sử dụng là chế độ soạn thảo.

TH Kết quả 30 xuất hiện ngay lập tức vì chế độ gõ lệnh trực tiếp thực thi lệnh ngay khi người dùng nhấn Enter.

TH Cửa sổ mới mà Bình vừa mở là chế độ soạn thảo, dùng để viết một chương trình hoàn chỉnh.

VD Lệnh print("Xin chào") trong cửa sổ mới sẽ tự động chạy ngay sau khi Bình gõ xong mà không cần làm gì thêm.

Một học sinh đang làm quen với các kiểu dữ liệu trong Python và thực hiện các lệnh sau ở chế độ gõ lệnh trực tiếp:
>>> 2023
>>> "Tin học 10"
>>> 9.5

Dưới đây là một số nhận định về các lệnh trên:

NB 2023 là một ví dụ về kiểu dữ liệu xâu kí tự.

TH Python tự động nhận biết 9.5 là kiểu dữ liệu số thực mà không cần người dùng khai báo.

TH Để "Tin học 10" được nhận diện là một xâu kí tự, nó bắt buộc phải được đặt trong cặp dấu nháy kép hoặc nháy đơn.

VD Nếu học sinh thực hiện lệnh "Tin học" + 10, chương trình sẽ báo lỗi vì không thể cộng một xâu kí tự với một số nguyên.

Giáo viên yêu cầu học sinh sử dụng lệnh print() để hiển thị thông tin cá nhân. Bạn Mai viết hai lệnh sau:
Lệnh 1: print("Họ tên:", "Lê Anh Mai")
Lệnh 2: print("Điểm trung bình =", 9.0 + 0.5)

Dưới đây là một số nhận định về hai lệnh trên:

NB Lệnh print() chỉ có thể in ra một giá trị duy nhất mỗi lần gọi.

TH Ở Lệnh 1, kết quả in ra màn hình sẽ là Họ tên: Lê Anh Mai.

TH Ở Lệnh 2, Python sẽ thực hiện phép tính 9.0 + 0.5 trước rồi mới in kết quả ra màn hình.

VD Để in ra dòng chữ Điểm trung bình = 9.5, Mai có thể viết một lệnh tương đương là print("Điểm trung bình", "=", 9.5).

Bảng xếp hạng

Hạng Họ tên Điểm số Thời gian
1
nva 1 lần thi
9.62 / 10.00
3 phút 32 giây

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *