Tin Học KHMT
Ôn tập Tin học THPT › Tin học 10 › Bài 28
Tin học 10

Bài 28. Xâu kí tự (string)

Bài này giới thiệu xâu kí tự (kiểu str) trong Python - cách đánh chỉ số cho từng kí tự bắt đầu từ 0, cách lấy ra một đoạn con bằng lát cắt (slice), và cách duyệt qua toàn bộ xâu bằng vòng lặp for để đếm hoặc xử lí từng kí tự.

Chủ đề F · Lập trình, Thuật toán & CTDL (KHMT) - đọc khoảng 12 phút · 23 câu luyện tập trong ứng dụng

Tương ứng sách giáo khoa
  • Cánh DiềuTin học 10 - Chủ đề F · Bài 12. Kiểu dữ liệu xâu kí tự - Xử lí xâu kí tựtr. 94
  • Kết nối tri thứcTin học 10 - Bài 24. Xâu kí tựtr. 119–122
Xem bảng đối chiếu cả bộ →

Bắt đầu bằng một hình dung

Hãy hình dung một chuỗi vòng được xâu từ nhiều hạt cườm nhỏ, mỗi hạt mang một kí tự. Đặt chuỗi vòng ấy xuống bàn và đánh số các hạt lần lượt từ trái sang phải, bắt đầu từ số 0 chứ không phải số 1 - hạt đầu tiên mang số 0, hạt kế tiếp mang số 1, cứ thế tiếp tục. Đánh số xong, ta có thể chỉ ngay ra “hạt số 0 là hạt nào”, lấy ra “đoạn từ hạt số 2 đến trước hạt số 5”, hay đếm xem trong cả chuỗi có bao nhiêu hạt cùng một loại.

Xâu kí tự (string) trong lập trình hoạt động y hệt chuỗi hạt đó: một dãy các kí tự nối liền nhau, mỗi kí tự có một vị trí - gọi là chỉ số - được đánh số bắt đầu từ 0. Nhờ vậy, ta có thể lấy ra một kí tự theo đúng vị trí, cắt lấy một đoạn liên tiếp, hoặc duyệt qua từng kí tự để đếm xem một loại kí tự nào đó xuất hiện bao nhiêu lần.

Nội dung bài học

  1. Xâu kí tự và chỉ số
  2. Nối, lặp và duyệt từng kí tự

Tóm tắt lý thuyết cần nhớ

  • Xâu kí tự (str) là một dãy kí tự đặt trong nháy đơn hoặc nháy kép; len(s) cho biết xâu có bao nhiêu kí tự.
  • Chỉ số của xâu bắt đầu từ 0: s[0] là kí tự đầu tiên; lát cắt s[a:b] lấy các kí tự từ chỉ số a đến TRƯỚC chỉ số b.
  • Có thể nối hai xâu bằng +, lặp xâu bằng *, và duyệt từng kí tự bằng for ch in s: - thường dùng để đếm hoặc kiểm tra từng kí tự.
  • Các phương thức s.upper(), s.lower(), s.replace(cũ, mới) trả về một xâu MỚI, không làm thay đổi xâu gốc.

Thuật ngữ tiếng Anh trong bài

Tiếng AnhĐọc làNghĩa
stringxì-trinhchuỗi (xâu kí tự)
Một xâu các chữ cái, số hoặc kí hiệu viết trong dấu nháy.
strxì-tơkiểu chuỗi (str)
Kiểu chuỗi chữ trong Python, dùng cho đoạn chữ viết trong dấu nháy.
UnicodeIU-ni-cốtbảng mã Unicode
Một cuốn từ điển khổng lồ, đủ chỗ cho chữ viết của mọi ngôn ngữ, kể cả tiếng Việt có dấu như 'ă, ơ, ư'.
lenlenhàm lấy độ dài (len)
Cho biết một danh sách hay xâu chữ có bao nhiêu phần tử.
indexIN-đécchỉ số
Số thứ tự của một phần tử.

Câu hỏi trắc nghiệm có đáp án

Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 23 câu, chấm điểm tự động và giải thích từng câu sai.

Câu 1 · Nhận biết
Trong Python, chỉ số (index) của kí tự đầu tiên trong một xâu kí tự là bao nhiêu?
  1. 0
  2. 1
  3. -1
  4. Xâu không có chỉ số
Đáp án: A - Python đánh chỉ số các kí tự trong xâu bắt đầu từ 0: kí tự đầu tiên nằm ở chỉ số 0, kí tự thứ hai ở chỉ số 1, và cứ thế - không bắt đầu từ 1.
Câu 2 · Nhận biết
Xâu s = 'Tin hoc' có bao nhiêu kí tự, tức giá trị của len(s) là bao nhiêu (tính cả khoảng trắng)?
  1. 6
  2. 7
  3. 8
  4. 3
Đáp án: B - Xâu 'Tin hoc' gồm các kí tự T, i, n, khoảng trắng, h, o, c - tổng cộng 7 kí tự, nên len(s) trả về 7.
Câu 3 · Thông hiểu
Cho s = 'lap trinh'. Kết quả của s[0:3] là gì?
  1. 'lap'
  2. 'lap '
  3. 'ap'
  4. 'lap t'
Đáp án: A - s[0:3] lấy các kí tự từ chỉ số 0 đến TRƯỚC chỉ số 3, tức chỉ số 0, 1, 2 - là các chữ 'l', 'a', 'p' - ghép lại thành 'lap'. Kí tự ở chỉ số 3 (dấu cách) không được lấy vào.
Câu Đúng/Sai (Phần II) · Thông hiểu
Cho biết mỗi phát biểu sau đúng hay sai:
  • a)s[0] lấy kí tự CUỐI CÙNG của xâu s.Sai
  • b)Lát cắt s[2:5] lấy các kí tự tại chỉ số 2, 3 và 4, không lấy chỉ số 5.Đúng
  • c)Phương thức s.upper() làm thay đổi trực tiếp xâu s ban đầu thành chữ hoa.Sai
  • d)Vòng lặp for ch in s: lần lượt cho biến ch nhận giá trị từng kí tự của s, theo đúng thứ tự từ đầu đến cuối.Đúng
Vì sao:
  • (a) sai vì s[0] lấy kí tự ĐẦU TIÊN (chỉ số 0), không phải kí tự cuối - muốn lấy kí tự cuối phải dùng s[len(s) - 1].
  • (b) đúng vì lát cắt s[a:b] luôn lấy từ chỉ số a đến TRƯỚC chỉ số b, nên s[2:5] lấy đúng các chỉ số 2, 3, 4.
  • (c) sai vì s.upper() KHÔNG thay đổi s gốc, mà trả về một xâu mới - muốn giữ kết quả phải gán vào một biến.
  • (d) đúng, đây chính là cách vòng lặp for ch in s: hoạt động, duyệt lần lượt từng kí tự theo đúng thứ tự.

Thử ngay: minh hoạ từng bước

Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.

Học trọn bài này trong ứng dụng

Bài giảng đầy đủ, 23 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.

Mở bài 28 trong ứng dụng

Phần học miễn phí, không cần tạo tài khoản.