Dưới đây là DANH SÁCH BỔ SUNG TOÀN DIỆN (nhiều hàm ít người biết nhưng cực hữu ích khi dạy và làm bài):
✅ NHÓM 1: THAY ĐỔI KÍ TỰ / CẤU TRÚC
🔹 replace(old, new, count)
Thay thế chuỗi con.
🔹 translate() + maketrans()
Thay thế theo bảng ánh xạ (nâng cao hơn replace).
🔹 expandtabs(tabsize)
Chuyển ký tự TAB thành số lượng khoảng trắng nhất định.
✅ NHÓM 2: TÌM KIẾM NÂNG CAO
🔹 find(sub, start, end)
🔹 rfind(sub, start, end)
🔹 index(), rindex()
🔹 count(sub)
✅ NHÓM 3: TÁCH & GHÉP CHUỖI
🔹 split(sep, maxsplit)
🔹 rsplit(sep, maxsplit)
🔹 splitlines(keepends)
Tách theo dòng (\n), có thể giữ lại ký tự xuống dòng.
🔹 join(list)
Ghép các phần tử thành chuỗi.
✅ NHÓM 4: KIỂM TRA DẠNG CHUỖI (isX)
Đã có một số, bổ sung thêm:
| Hàm | Ý nghĩa |
|---|---|
| isdecimal() | Chỉ gồm chữ số thập phân |
| isnumeric() | Bao gồm cả số đặc biệt (⅔, ²…) |
| isidentifier() | Có hợp lệ làm tên biến không |
| isprintable() | In được không |
| istitle() | Từng từ viết hoa chữ đầu? |
⚠️ Điểm hay: so sánh isdigit vs isdecimal vs isnumeric
✅ NHÓM 5: ĐỊNH DẠNG CHUỖI CAO CẤP
🔹 f-string format nâng cao:
f"{score:.2f}" # làm tròn 2 số thập phân
f"{value:>10}" # căn phải
f"{value:<10}" # căn trái
f"{value:^10}" # căn giữa
f"{num:,}" # thêm dấu phẩy: 1,000,000
🔹 Template strings (từ module string)
An toàn hơn khi format chuỗi người dùng nhập vào.
✅ NHÓM 6: CẮT, CHÈN, ĐẢO, LỌC
🔹 slice step âm để đảo chuỗi
s[::-1]
🔹 Chèn chuỗi / ký tự vào vị trí cụ thể
s[:pos] + "X" + s[pos:]
🔹 Lọc ký tự theo điều kiện
"".join(ch for ch in s if ch.isalpha())
✅ NHÓM 7: BIỀU THỨC CHÍNH QUY (regex – rất quan trọng!)
Dùng thư viện re:
import re
re.findall(pattern, s)
re.sub(pattern, new, s)
re.split(pattern, s)
re.search(pattern, s)
👉 Dùng để: tìm email, số điện thoại, lọc ký tự, tách từ, chuẩn hóa unicode…
✅ NHÓM 8: XỬ LÝ UNICODE + CHUẨN HÓA
import unicodedata
unicodedata.normalize('NFC', s)
unicodedata.name(ch)
👉 Dùng khi xử lý tiếng Việt, dấu kết hợp…
✅ NHÓM 9: XỬ LÝ KHOẢNG TRẮNG & DÒNG
| Hàm | Chức năng |
|---|---|
| strip() | Xóa trắng 2 bên |
| lstrip() | Bên trái |
| rstrip() | Bên phải |
| strip(“abc”) | Xóa ký tự a, b, c (không chỉ khoảng trắng) |
✅ NHÓM 10: THƯ VIỆN string (rất hữu ích)
import string
string.ascii_letters # a-zA-Z
string.digits # 0123456789
string.punctuation # !@#$%^&*...
string.whitespace # \t \n ...
✅ NHÓM 11: CHIA BLOCK / WRAP VĂN BẢN
import textwrap
textwrap.fill(text, width=50)
textwrap.wrap(text, width=50)
✅ NHÓM 12: MỘT SỐ HÀM ÍT BIẾT NHƯNG CỰC HAY
| Hàm | Ý nghĩa |
|---|---|
| partition(sep) | Trả về 3 phần: trước – sep – sau |
| rpartition(sep) | Tìm từ phải |
| casefold() | So sánh không phân biệt hoa thường chuẩn hơn lower() |
| encode()/decode() | Chuyển giữa str và bytes |
| format_map(dict) | Tương tự format nhưng dùng dict |
| capitalize() | Viết hoa chữ đầu + thường hóa phần còn lại |
✅ NHÓM 13: TRẢ RA BẢN MÃ KÝ TỰ
ord('A') # 65
chr(65) # 'A'
