BÀI 24: XÂU KÍ TỰ
"Làm việc với chuỗi ký tự trong Python"
🎯 SAU BÀI NÀY EM SẼ
- Hiểu được xâu kí tự là kiểu dữ liệu cơ bản của Python
Nắm được cấu trúc xâu kí tự, cách truy cập và các đặc điểm của xâu.
- Biết và thực hiện được lệnh for để xử lí xâu kí tự
Duyệt xâu theo chỉ số và theo phần tử, sử dụng toán tử in với xâu.
Em đã biết dữ liệu xâu kí tự (gọi tắt là xâu) từ Bài 16 và chúng ta có thể tạo các biến kiểu xâu kí tự theo nhiều cách:
📚 1. XÂU LÀ MỘT DÃY CÁC KÍ TỰ
📌 Hoạt động 1: Tìm hiểu cấu trúc của xâu kí tự
Quan sát các ví dụ sau để biết cấu trúc xâu kí tự, so sánh với danh sách để biết sự khác nhau giữa xâu (string) và danh sách (list).
📝 Ví dụ 1: Xâu kí tự và cách truy cập đến từng kí tự của xâu
📊 Minh họa cấu trúc xâu:
• Lệnh
len() sẽ tính độ dài của xâu hay số lượng các kí tự có trong xâu• Có thể truy cập từng kí tự của xâu thông qua chỉ số
• Chỉ số bắt đầu từ 0
Một xâu kí tự được hiểu là một dãy các kí tự. Tương tự danh sách, ta có thể truy cập từng kí tự của xâu thông qua chỉ số, chỉ số bắt đầu từ 0.
🔄 SỰ KHÁC NHAU GIỮA XÂU VÀ DANH SÁCH
📝 Ví dụ 2: Quan sát các lệnh sau để thấy sự khác nhau giữa xâu và danh sách
✅ Với Danh sách:
Danh sách cho phép thay đổi từng phần tử
❌ Với Xâu kí tự:
Python không cho phép thay đổi từng kí tự của một xâu
Python không cho phép thay đổi từng kí tự của một xâu. Điều này khác với danh sách.
• Python không có kiểu dữ liệu kí tự. Kí tự chính là xâu có độ dài 1.
• Xâu rỗng được định nghĩa như sau:
empty = ""
🔖 GHI NHỚ
📌 Xâu kí tự trong Python là dãy các kí tự Unicode.
📌 Xâu có thể được coi là danh sách các kí tự nhưng không thay đổi từng kí tự của xâu.
📌 Truy cập từng kí tự của xâu qua chỉ số, chỉ số từ 0 đến len() - 1.
✏️ CỦNG CỐ PHẦN 1
📝 Câu 1. Các xâu kí tự sau có hợp lệ không?
"123&*()+-ABC"
"1010110&0101001"
"Tây Nguyên"
11111111 = 256
📝 Câu 2. Mỗi xâu hợp lệ ở Câu 1 có độ dài bằng bao nhiêu?
🔄 2. LỆNH DUYỆT KÍ TỰ CỦA XÂU
📌 Hoạt động 2: Tìm hiểu lệnh duyệt từng kí tự của xâu
Quan sát các lệnh sau để biết cách duyệt từng kí tự của xâu kí tự bằng lệnh for. Có hai cách duyệt: theo chỉ số và theo phần tử của xâu kí tự.
📝 Cách 1: Duyệt theo chỉ số với lệnh range()
Biến
i lần lượt chạy theo chỉ số của xâu kí tự S, từ 0 đến len(S) - 1. Kí tự tại chỉ số i là S[i].
📝 Cách 2: Duyệt theo kí tự của xâu
Duyệt theo từng kí tự của xâu
S. Biến ch sẽ được gán lần lượt các kí tự của xâu S từ đầu đến cuối.
Từ khoá
in, tuỳ trường hợp cụ thể, hoặc là toán tử lôgic dùng để kiểm tra một giá trị có mặt hay không trong một vùng giá trị/danh sách/xâu, hoặc để chọn lần lượt từng phần tử trong một vùng giá trị/danh sách/xâu.
🔖 GHI NHỚ
📌 Có thể duyệt các kí tự của xâu bằng lệnh for tương tự như với danh sách.
📌 s1 in s2 trả lại giá trị True nếu s₁ là xâu con của s₂.
✏️ CỦNG CỐ PHẦN 2
📝 Câu 1. Sau khi thực hiện các lệnh sau, biến skq sẽ có giá trị bao nhiêu?
📝 Câu 2. Cho s1 = "abc", s2 = "ababcabca". Các biểu thức lôgic sau cho kết quả là đúng hay sai?
s1 in s2
s1 + s1 in s2
"abcabca" in s2
"abc123" in s2
💻 THỰC HÀNH
Các lệnh cơ bản làm việc với xâu kí tự
📝 Nhiệm vụ 1
Viết chương trình nhập số tự nhiên n là số học sinh, sau đó nhập họ và tên học sinh. Lưu họ và tên học sinh vào một danh sách. In danh sách ra màn hình, mỗi họ tên trên một dòng.
Chương trình yêu cầu nhập số tự nhiên n, sau đó nhập n họ tên học sinh và lưu vào danh sách. Mỗi họ tên là một xâu kí tự được nhập từ bàn phím.
📄 Chương trình có thể như sau:
• Vòng lặp đầu tiên nhập n họ tên học sinh
• Mỗi họ tên là một xâu kí tự được lưu vào danh sách
ds_lop• Vòng lặp thứ hai in từng họ tên ra màn hình, mỗi họ tên trên một dòng
📊 Ví dụ chạy chương trình:
📝 Nhiệm vụ 2
Nhập một xâu kí tự S từ bàn phím rồi kiểm tra xem xâu S có chứa xâu con "10" không.
Cách 1: Nếu xâu S chứa xâu con "10" thì sẽ có chỉ số k mà S[k] = "1" và S[k+1] = "0".
Cách 2: Dùng toán tử
in để kiểm tra xâu "10" có là xâu con của S.
📄 Cách 1: Duyệt kí tự của xâu theo chỉ số
📄 Cách 2: Sử dụng toán tử in
🔍 So sánh 2 cách:
Cách 2: Sử dụng toán tử
in - ngắn gọn và dễ hiểu hơn!
✏️ LUYỆN TẬP
📝 Bài 1
Cho xâu S, viết đoạn lệnh trích ra xâu con của S bao gồm ba kí tự đầu tiên của S.
📝 Bài 2
Viết chương trình kiểm tra xâu S có chứa chữ số không. Thông báo "S có chứa chữ số" hoặc "S không chứa chữ số nào".
🚀 VẬN DỤNG - KẾT NỐI TRI THỨC
📝 Bài 1
Cho hai xâu s1, s2. Viết đoạn chương trình chèn xâu s1 vào giữa s2, tại vị trí len(s2)//2. In kết quả ra màn hình.
📝 Bài 2
Viết chương trình nhập số học sinh và họ tên học sinh. Sau đó đếm xem trong danh sách có bao nhiêu bạn tên là "Hương".
Sử dụng toán tử
in để kiểm tra một xâu có là xâu con của một xâu khác.
🎉 Hoàn thành bài học!
Chúc các em học tốt và thực hành nhiều! 📚✨
