Giải Tin Học 10 trang 90

Lời giải chi tiết SGK Lớp 10 · Môn Tin Học · Trang 90–91

Nguon: Tin Hoc 10 - Ket Noi Tri Thuc Voi Cuoc Song (trang 90 – 91)

⚠️ Lưu ý: Ảnh gửi gồm trang 8990. Phần dưới giải đầy đủ tất cả câu hỏi, bài tập trong hai trang này.

🔍 Kiến thức cần nhớ

  • Khi nhập số hoặc xâu kí tự từ dòng lệnh, Python tự nhận biết kiểu dữ liệu.
  • Python phân biệt số nguyên (int) và số thực (float).
  • Phép chia / trong Python luôn trả về số thực (float), kể cả khi chia hết.
  • Lệnh print() dùng để in (xuất) dữ liệu ra màn hình, có thể in một hoặc nhiều giá trị cùng lúc. Cú pháp: print(v1, v2, ..., vn).
  • Khi in nhiều giá trị, các giá trị cách nhau bằng một dấu cách.
  • Lệnh print() có thể tính toán và đưa ra kết quả của biểu thức.
💡 Mẹo nhớ: Trong Python 3, dấu / luôn cho kết quả số thực. Muốn chia lấy phần nguyên dùng //.

⚙️ Bài tập

(Trang 89) Câu hỏi

Câu 1

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

>>> 5/2
>>> 12 + 1.5
>>> "Bạn là học sinh lớp 10"
>>> 10 + 7/2
Cách 1 — Tính trực tiếp từng lệnh

Lệnh 5/2:

  • Phép chia / luôn cho số thực.
  • Kết quả: 2.5 — kiểu số thực (float).

Lệnh 12 + 1.5:

  • Một số nguyên cộng một số thực → kết quả là số thực.
  • 12 + 1.5 = 13.5 — kiểu số thực (float).

Lệnh "Bạn là học sinh lớp 10":

  • Đây là một dãy kí tự đặt trong cặp dấu nháy kép.
  • Kết quả: 'Bạn là học sinh lớp 10' — kiểu xâu kí tự (str).

Lệnh 10 + 7/2:

  • Theo thứ tự ưu tiên: thực hiện 7/2 trước = 3.5 (số thực).
  • Sau đó: 10 + 3.5 = 13.5 — kiểu số thực (float).
⚠️ Lưu ý thi: Nhiều bạn nhầm 5/2 = 2. Trong Python, 5/2 ra 2.5/ luôn cho số thực. Nếu cần kết quả nguyên 2 thì phải dùng 5//2.

Câu 2

Đề bài: Lệnh sau sẽ in ra kết quả gì?

>>> print("13 + 10*3/2 - 3*2 = ", 13 + 10*3/2 - 3*2)
Cách 1 — Phân tích hai phần của lệnh

Lệnh print() nhận hai giá trị, cách nhau bởi dấu phẩy:

  1. Phần thứ nhất là một xâu kí tự "13 + 103/2 - 32 = " → in nguyên văn.
  2. Phần thứ hai là một biểu thức → Python sẽ tính rồi in kết quả.

Tính biểu thức 13 + 103/2 - 32 theo thứ tự ưu tiên (×, ÷ trước; +, − sau):

  • 10 × 3 = 30
  • 30 / 2 = 15.0 (số thực, do có phép chia)
  • 3 × 2 = 6
  • 13 + 15.0 − 6 = 22.0

Kết quả in ra màn hình:

13 + 10*3/2 - 3*2 =  22.0
💡 Mẹo nhớ: Phần trong dấu nháy được in y nguyên; phần ngoài dấu nháy được Python tính toán. Kết quả là 22.0 (số thực) chứ không phải 22, vì biểu thức có chứa phép chia /.

(Trang 89) Thực hành

Đề bài: Tạo, nhập và chạy chương trình đầu tiên có tên Bai1.py.

Nội dung chương trình:

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

Các bước thực hiện:

  • Bước 1: Nháy đúp chuột vào biểu tượng Python để khởi động.
  • Bước 2: Chọn File/New để mở chế độ soạn thảo chương trình.
  • Bước 3: Nhập nội dung chương trình như trên.
  • Bước 4: Chọn File/Save hoặc nhấn Ctrl + S để lưu tệp với tên Bai1.py.
  • Bước 5: Chọn Run/Run Module hoặc nhấn F5 để chạy chương trình.
  • Bước 6: Kết thúc phiên làm việc bằng cách nháy nút × hoặc gõ quit() / exit() rồi nhấn ENTER.

Kết quả khi chạy:

Xin chào!
💡 Mẹo nhớ: Kí hiệu # đánh dấu dòng chú thích — Python bỏ qua phần sau #, không thực hiện. Chú thích dùng để ghi giải thích cho người đọc chương trình.

(Trang 90) Luyện tập

Câu 1

Đề bài: 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
b) 20 − 7
c) 3 × 10 − 16

d) 12/5 + 13/6

Cách 1 — Dùng phép toán cơ bản của Python

a) 10 + 13

>>> 10 + 13
23

b) 20 − 7

>>> 20 - 7
13

c) 3 × 10 − 16 (dấu nhân viết là *)

>>> 3 * 10 - 16
14

d) 12/5 + 13/6

>>> 12/5 + 13/6
4.566666666666666

Giải thích câu d:

  • 12/5 = 2.4
  • 13/6 = 2.16666...
  • Tổng = 4.566666666666666 (kiểu số thực)
⚠️ Lưu ý thi: Dấu nhân trong Python là *, không phải ×. Viết × sẽ báo lỗi cú pháp.

Câu 2

Đề bài: 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""
Cách 1 — Phân tích cú pháp từng lệnh

*Lệnh 3 + 5: CÓ lỗi.**

  • Sau dấu + (toán tử cộng) lại xuất hiện ngay dấu * (toán tử nhân).
  • Hai toán tử đứng liền nhau mà giữa chúng không có toán hạng → lỗi cú pháp (SyntaxError).

Lệnh "Bạn là học sinh, bạn tên là "Nguyễn Việt Anh"": CÓ lỗi.

  • Xâu mở đầu bằng dấu nháy kép, Python coi xâu là "Bạn là học sinh, bạn tên là ".
  • Khi gặp dấu nháy kép thứ hai (trước chữ Nguyễn), Python tưởng xâu đã kết thúc, phần Nguyễn Việt Anh còn lại không hợp lệ → lỗi cú pháp.

Cách sửa lệnh thứ hai (dùng nháy đơn bao ngoài, nháy kép bên trong):

>>> 'Bạn là học sinh, bạn tên là "Nguyễn Việt Anh"'
⚠️ Lưu ý thi: Không được dùng cùng một loại dấu nháy ở trong và ngoài xâu. Muốn có dấu nháy kép bên trong, hãy bọc xâu bằng dấu nháy đơn (và ngược lại).

Câu 3

Đề bài: Viết các lệnh in ra màn hình thông tin như sau:

a) 1 × 3 × 5 × 7 = 105
b) Bạn Hoa năm nay 16 tuổi.

Cách 1 — Để Python tự tính phần số

a) Cho Python tính tích, còn phần chữ in nguyên văn:

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

b)

>>> print("Bạn Hoa năm nay 16 tuổi.")
Bạn Hoa năm nay 16 tuổi.
Cách 2 — In toàn bộ dưới dạng xâu kí tự

a) Nếu chỉ cần hiển thị đúng dòng chữ, có thể viết hẳn thành một xâu:

>>> print("1 × 3 × 5 × 7 = 105")
1 × 3 × 5 × 7 = 105
💡 Mẹo nhớ: Cách 1 hay hơn vì để máy tự tính 1357, tránh sai sót khi nhẩm. Dấu × ở đây chỉ là kí tự nằm trong xâu để hiển thị đẹp, còn phép nhân thật sự dùng .

(Trang 90) Vận dụng

Câu 1

Đề bài: Ngoài cách viết xâu 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. Khi đó có thể dùng phím Enter để xuống dòng ngay trong xâu. Hãy thực hiện lệnh sau và quan sát kết quả:

>>> 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""")
Cách 1 — Thực hiện và quan sát

Khi dùng cặp ba dấu nháy kép """...""", Python giữ nguyên cách xuống dòng bên trong xâu. Kết quả in ra:

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
💡 Mẹo nhớ: Xâu trong cặp ba dấu nháy ("""...""" hoặc '''...''') cho phép viết nhiều dòng, rất tiện để in đoạn thơ, đoạn văn dài.

Câu 2

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

Cách 1 — Dùng hai vòng lặp lồng nhau (cơ bản)
# In bảng nhân từ 1 đến 10
for i in range(1, 11):          # i là số ở mỗi bảng nhân
    for j in range(1, 11):      # j là số nhân từ 1 đến 10
        print(i, "x", j, "=", i*j)
    print()                     # in dòng trống ngăn cách các bảng

Giải thích:

  • Vòng lặp ngoài i chạy từ 1 đến 10 → ứng với bảng nhân 1, 2, ..., 10.
  • Vòng lặp trong j chạy từ 1 đến 10 → in các tích i*j.
  • range(1, 11) cho dãy 1, 2, ..., 10 (không lấy 11).
  • Lệnh print() cuối in một dòng trống để các bảng nhìn rõ ràng hơn.

Một phần kết quả (bảng nhân 2):

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
...
2 x 10 = 20
Cách 2 — In bảng nhân dạng lưới (gọn, đẹp hơn)
# In bảng nhân dạng bảng vuông 10 x 10
for i in range(1, 11):
    for j in range(1, 11):
        print(i*j, end="\t")    # \t là kí tự Tab, căn cột thẳng hàng
    print()                     # xuống dòng sau mỗi hàng

Giải thích:

  • Tham số end="\t" thay cho việc xuống dòng mặc định, giúp các tích cùng một hàng nằm trên một dòng, cách nhau bằng dấu Tab.
  • Sau khi in xong một hàng (vòng j kết thúc), print() đưa con trỏ xuống dòng mới.

Kết quả là một bảng vuông gồm các tích từ 1×1 đến 10×10 thẳng hàng theo cột.

💡 Mẹo nhớ: end="\t"end=" " giúp đổi cách kết thúc lệnh print() — mặc định print() luôn tự xuống dòng (end="\n").
⚠️ Lưu ý thi: Phải viết đúng range(1, 11) mới lấy đủ từ 1 đến 10. Nếu viết range(1, 10) sẽ thiếu số 10.

🎯 Ghi nhớ: - Phép / trong Python luôn cho số thực5/2 = 2.5. - Lệnh print() in phần trong dấu nháy nguyên văn, còn phần ngoài dấu nháy được tính toán. - Dấu nhân là *, dấu × chỉ dùng làm kí tự hiển thị trong xâu. - Không dùng trùng loại dấu nháy trong và ngoài xâu. - Cặp ba dấu nháy cho phép viết xâu nhiều dòng. - Dùng vòng lặp lồng nhau để in bảng nhân; nhớ range(1, 11) để đủ 1 → 10.
Chế độ đọc sách →