Giải Tin Học 10 trang 120

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

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

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

1. Xâu là một dãy các kí tự

  • Xâu kí tự (gọi tắt là xâu, tiếng Anh là string) là một dãy các kí tự Unicode.
  • Có thể tạo biến xâu bằng dấu nháy đơn ' ', nháy kép " ", hoặc ba nháy """ """ (cho xâu nhiều dòng).
  • Lệnh len(s) trả về độ dài của xâu (số lượng kí tự trong xâu).
  • Truy cập từng kí tự qua chỉ số giống như danh sách: chỉ số bắt đầu từ 0, kí tự cuối có chỉ số len(s) − 1.
>>> s = "Thời khoá biểu"
>>> len(s)
14
>>> s[0]
'T'
>>> s[10]
'b'
  • Khác với danh sách: Python không cho phép thay đổi từng kí tự của xâu.
>>> s = "abc"
>>> s[0] = "A"
TypeError: 'str' object does not support item assignment
  • Python không có kiểu kí tự riêng: kí tự chính là xâu có độ dài 1.
  • Xâu rỗng: empty = "" (độ dài bằng 0).
💡 Mẹo nhớ: Xâu có thể đọc từng kí tự như danh sách (qua chỉ số), nhưng không sửa được từng kí tự. Muốn "sửa" phải tạo xâu mới.

2. Lệnh duyệt kí tự của xâu

Có hai cách duyệt từng kí tự của xâu bằng lệnh for:

  • Cách 1 – Duyệt theo chỉ số (dùng range(len(s))): biến i chạy từ 0 đến len(s) − 1, kí tự tại chỉ số i là s[i].
>>> s = "Thời khoá biểu"
>>> for i in range(len(s)):
        print(s[i], end=" ")
  • Cách 2 – Duyệt theo kí tự: biến ch lần lượt nhận từng kí tự của xâu từ đầu đến cuối.
>>> for ch in s:
        print(ch, end=" ")
  • Từ khoá in còn dùng để kiểm tra một kí tự/xâu con có nằm trong xâu hay không (trả về True/False):
>>> "a" in "abcd"
True
>>> "abc" in "abcd"
True

⚙️ Bài tập

Câu 1

Đề bài: Các xâu kí tự sau có hợp lệ không?

a) "123&*()+-ABC"
b) "1010110&0101001"
c) "Tây Nguyên"
d) 11111111 = 256

Cách 1 — Dựa vào định nghĩa xâu kí tự

Một xâu kí tự hợp lệ trong Python là dãy kí tự đặt trong cặp dấu nháy ('...', "..." hoặc """...""). Mọi kí tự Unicode (chữ, số, dấu cách, kí hiệu đặc biệt, chữ có dấu tiếng Việt) đều được phép nằm trong xâu.

  • a) Hợp lệ. Dãy kí tự đặt trong dấu nháy kép; các kí hiệu &, *, (, ), +, − đều là kí tự hợp lệ bên trong xâu.
  • b) Hợp lệ. Dãy chữ số và kí hiệu & nằm trong dấu nháy kép → là một xâu.
  • c) Hợp lệ. Chữ có dấu tiếng Việt và dấu cách đều là kí tự Unicode hợp lệ trong xâu.
  • d) KHÔNG hợp lệ. Biểu thức 11111111 = 256 không có dấu nháy nên đây không phải là xâu kí tự. Hơn nữa nó là một lệnh gán sai cú pháp (vế trái là số, không phải tên biến).

Kết luận: Các xâu hợp lệ là a), b), c); d) không hợp lệ.

Cách 2 — Quy tắc nhận biết nhanh

Chỉ cần đặt câu hỏi: "Nội dung có nằm trong cặp dấu nháy không?"

  • Có dấu nháy → là xâu (a, b, c) ✔
  • Không có dấu nháy → không phải xâu (d) ✘
⚠️ Lưu ý thi: Đề rất hay "gài" trường hợp như câu d. Nội dung trông giống dữ liệu nhưng thiếu dấu nháy thì không phải xâu. Ngược lại, dù bên trong toàn chữ số hay kí hiệu lạ, chỉ cần có dấu nháy là xâu hợp lệ.

Câu 2

Đề bài: Mỗi xâu hợp lệ ở Câu 1 có độ dài bằng bao nhiêu?

Cách 1 — Đếm trực tiếp từng kí tự

Độ dài xâu = số kí tự bên trong dấu nháy (kể cả dấu cách và kí hiệu đặc biệt).

*a) "123&()+-ABC"**

Kí tự123&*()+ABC
STT123456789101112

→ Độ dài = 12

b) "1010110&0101001"

  • Phần "1010110" có 7 kí tự
  • Kí hiệu "&" có 1 kí tự
  • Phần "0101001" có 7 kí tự

→ Độ dài = 7 + 1 + 7 = 15

c) "Tây Nguyên"

Kí tựTây(dấu cách)Nguyên
STT12345678910

→ Độ dài = 10

Cách 2 — Dùng lệnh len() trên máy tính

Có thể kiểm tra nhanh bằng Python:

>>> len("123&*()+-ABC")
12
>>> len("1010110&0101001")
15
>>> len("Tây Nguyên")
10
⚠️ Lưu ý thi: Hai lỗi đếm thường gặp: - Quên đếm dấu cách: trong "Tây Nguyên" dấu cách giữa hai từ vẫn tính là 1 kí tự. - Tưởng chữ có dấu là 2 kí tự: "â", "ê" mỗi chữ chỉ là 1 kí tự Unicode, không phải 2.

🎯 Ghi nhớ: - Xâu kí tự = dãy kí tự Unicode đặt trong dấu nháy; không có nháy thì không phải xâu. - Truy cập từng kí tự qua chỉ số (từ 0 đến len(s) − 1) nhưng không sửa được từng kí tự. - len(s) cho biết độ dài xâu, đếm cả dấu cách và kí hiệu đặc biệt. - Duyệt xâu bằng for theo hai cách: theo chỉ số (for i in range(len(s))) hoặc theo kí tự (for ch in s).
Chế độ đọc sách →