Hàm built-in ascii(object) trả về chuỗi biểu diễn có thể in (printable representation) của đối tượng, thay thế các ký tự non-ASCII bằng ký tự escape (\x, \u, \U). Tương tự repr() nhưng đảm bảo đầu ra chỉ chứa ký tự ASCII.
Cú pháp
ascii(object)
Ví dụ 1: Ký tự đặc biệt đơn lẻ
string = '¢' # ký tự cent print(ascii(string))
Kết quả
'\xa2'
Ví dụ 2: Chuỗi chứa nhiều ký tự non-ASCII
name = 'HÃFÆËŽ' print(ascii(name))
Kết quả
'H\xc3F\xc6\xcb\u017d'
Ví dụ 3: List chứa chuỗi non-ASCII
strings = ['HÃFÆËŽ', '®', '©Òpy'] print(ascii(strings))
Kết quả
['H\xc3F\xc6\xcb\u017d', '\xae', '\xa9\xd2py']
So sánh ascii() vs repr()
| Hàm | Đầu ra | Unicode |
|---|---|---|
ascii() | Chỉ ký tự ASCII, escape non-ASCII | Escape thành \x, \u, \U |
repr() | Có thể chứa Unicode trực tiếp | Hiển thị Unicode nếu terminal hỗ trợ |
Khi nào dùng ascii()?
- Debug/ghi log trong môi trường chỉ hỗ trợ ASCII.
- Truyền dữ liệu qua hệ thống cũ (legacy) chỉ chấp nhận ASCII.
- Tạo chuỗi representation an toàn cho serialization.
Kết luận
ascii() đảm bảo chuỗi đầu ra an toàn cho mọi môi trường ASCII. Hữu ích khi làm việc với dữ liệu quốc tế hóa (i18n) và cần tương thích ngược.