BÀI 25. MỘT SỐ LỆNH LÀM VIỆC VỚI XÂU KÍ TỰ
1. XÂU CON VÀ LỆNH TÌM VỊ TRÍ XÂU CON
Xâu con:
Là một dãy kí tự liên tiếp nằm trong một xâu khác.
Ví dụ:
"học" là xâu con của xâu "Tin học".
Toán tử in:
Dùng để kiểm tra xem xâu con có nằm trong xâu mẹ hay không.
Kết quả trả về là True (Đúng) hoặc False (Sai).
Ví dụ 1:
"a" in "abc" Kết quả là True.
Ví dụ 2:
"d" in "abc" Kết quả là False.
Lệnh find():
Dùng để tìm vị trí xuất hiện đầu tiên của xâu con trong xâu mẹ.
Nếu tìm thấy: Trả về chỉ số (vị trí) bắt đầu của xâu con.
Nếu không tìm thấy: Trả về giá trị -1.
Ví dụ:
s = "May tinh".
- Lệnh s.find("tinh") trả về 4 (vị trí chữ t).
- Lệnh s.find("hoa") trả về -1 (vì không có chữ "hoa" trong "May tinh").
CÂU HỎI TRẮC NGHIỆM
Câu 1: Xâu con được định nghĩa là gì?
Câu 2: Toán tử in được sử dụng để làm gì?
Câu 3: Nếu không tìm thấy xâu con, lệnh find() sẽ trả về giá trị nào?
Câu 4: Lệnh find() trả về kết quả là vị trí xuất hiện thứ mấy của xâu con?
Câu 5: Kết quả trả về của biểu thức kiểm tra bằng toán tử in thuộc kiểu dữ liệu nào?
Câu 6: Cho xâu s = "May tinh". Kết quả của lệnh s.find("tinh") là bao nhiêu?
Câu 7: Cho xâu s = "Tin hoc". Lệnh s.find("Python") sẽ trả về kết quả gì?
2. MỘT SỐ LỆNH THƯỜNG DÙNG VỚI XÂU KÍ TỰ
Lệnh split() (Tách xâu):
Chức năng: Tách một xâu thành danh sách các từ, dựa vào kí tự ngăn cách (mặc định).
Cú pháp: <xâu mẹ>.split(<kí tự ngăn cách>)
Ví dụ:
s = "Hà Nội".
Lệnh s.split() sẽ tách thành danh sách ["Hà", "Nội"].
Lệnh join() (Nối xâu):
Chức năng: Nối các phần tử trong một danh sách thành một xâu duy nhất, ngăn cách nhau bởi kí tự nối.
Cú pháp: <kí tự nối>.join(<danh sách>)
Ví dụ 1:
Có danh sách ds = ["Hà", "Nội"]. Lệnh " ".join(ds) (nối bằng dấu cách) sẽ tạo thành xâu "Hà Nội".
Ví dụ 2:
"-".join(["A", "B", "C"]) sẽ tạo thành xâu "A-B-C".
CÂU HỎI TRẮC NGHIỆM
Câu 8: Lệnh split() có chức năng chính là gì?
Câu 9: Lệnh join() có chức năng chính là gì?
Câu 10: Nếu không điền kí tự ngăn cách, lệnh split() sẽ mặc định tách xâu dựa vào kí tự nào?
Câu 11: Cú pháp đúng để nối các phần tử của danh sách ds bằng dấu gạch ngang là gì?
Câu 12: Kết quả trả về sau khi thực hiện lệnh split() thuộc kiểu dữ liệu nào?
Câu 13: Cho xâu s = "Hà Nội". Lệnh s.split() sẽ trả về kết quả nào?
Câu 14: Cho lệnh "-".join(["A", "B", "C"]). Kết quả thu được là xâu nào?
3. THỰC HÀNH
Nhiệm vụ 1: "Máy đếm từ và dọn dẹp văn bản".
Đề bài:
Em hãy viết chương trình thực hiện 2 việc sau:
1. Yêu cầu người dùng nhập vào một câu văn (có thể cố tình gõ thừa nhiều dấu cách giữa các từ). Hãy đếm xem câu văn đó có bao nhiêu từ.
2. Dọn dẹp lại câu văn đó sao cho giữa các từ chỉ còn đúng một dấu cách chuẩn mực và in ra màn hình.
Hướng dẫn:
- Lệnh split() tách một xâu thành các từ và đưa vào một danh sách. Khi không điền gì vào trong ngoặc, nó sẽ tự động nhận diện và loại bỏ toàn bộ các khoảng trắng thừa. Số lượng từ chính là chiều dài len() của danh sách đó.
- Lệnh join() có chức năng nối các phần tử của một danh sách thành một xâu. Dùng " ".join() để ghép các từ lại với nhau bằng 1 dấu cách duy nhất.
Chương trình Python hoàn chỉnh:
Nhiệm vụ 2: "Robot tìm kiếm".
Đề bài:
Em hãy viết chương trình yêu cầu người dùng nhập vào một đoạn văn bản. Sau đó, yêu cầu nhập tiếp một "từ khóa" cần tìm. Hãy báo cho người dùng biết từ khóa đó có xuất hiện trong đoạn văn không, và nếu có thì nằm ở vị trí thứ mấy.
Hướng dẫn:
- Sử dụng cú pháp <xâu mẹ>.find(<xâu con>).
- Lệnh sẽ tìm vị trí đầu tiên của xâu con trong xâu mẹ và trả về vị trí đó. Nếu không tìm thấy thì trả về -1.