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ự.
- 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
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
- Xâu kí tự và chỉ số
- 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ắts[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ằngfor 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 |
|---|---|---|
| string | xì-trinh | chuỗ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. |
| str | xì-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. |
| Unicode | IU-ni-cốt | bả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ư 'ă, ơ, ư'. |
| len | len | hà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ử. |
| index | IN-đéc | chỉ 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.
- 0
- 1
- -1
- Xâu không có chỉ số
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)?- 6
- 7
- 8
- 3
'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.s = 'lap trinh'. Kết quả của s[0:3] là gì?'lap''lap ''ap''lap t'
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.- a)
s[0]lấy kí tự CUỐI CÙNG của xâus.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âusban đầu thành chữ hoa.Sai - d)Vòng lặp
for ch in s:lần lượt cho biếnchnhận giá trị từng kí tự củas, theo đúng thứ tự từ đầu đến cuối.Đúng
- (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ùngs[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êns[2:5]lấy đúng các chỉ số 2, 3, 4. - (c) sai vì
s.upper()KHÔNG thay đổisgố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.
Phần học miễn phí, không cần tạo tài khoản.
Bài liên quan - Lập trình, Thuật toán & CTDL (KHMT)
Cùng mạch kiến thức với bài này, học nối tiếp cho chắc phần lí thuyết.