Page 23 - Python Simple
P. 23
3. Giới thiệu sơ về Python http://www.vithon.org/tutorial/2.5/node5.html
Chế độ thô sẽ hữu dụng trong trường hợp bạn phải nhập thật nhiều dấu suỵt
huyền, như khi bạn dùng trong các biểu thức chính quy (regular expression).
Ngoài những bảng mã chuẩn này, Python cung cấp một tập hợp các cách khác
để tạo các chuỗi Unicode từ một bảng mã đã biết.
Hàm có sẵn unicode() cung cấp truy cập vào tất cả bộ mã/giải mã (codec -
COder and DECoder) Unicode đã đăng ký. Một vài bảng mã phổ thông mà các
bộ chuyển mã này có thể chuyển gồm Latin-1, ASCII, UTF-8, và UTF-16. Hai
bảng mã sau cùng là các bảng mã có kích thước thay đổi và chứa mỗi ký tự
Unicode trong một hoặc nhiều byte. Bảng mã mặc định thường được thiết lập là
ASCII, nó cho phép các ký tự từ 0 tới 127 và cấm các ký tự khác. Khi một chuỗi
Unicode được in, viết vào tập tin, hoặc chuyển với str(), sự chuyển đổi diễn ra
với bảng mã mặc định này.
>>> u"abc"
u'abc'
>>> str(u"abc")
'abc'
>>> u"äöü"
u'\xe4\xf6\xfc'
>>> str(u"äöü")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in
Để chuyển một chuỗi Unicode thành một chuỗi 8-bit bằng một bảng mã nào đó,
các đối tượng Unicode cung cấp một phương thức encode() nhận một thông số,
tên của bảng mã. Bạn nên dùng tên bảng mã viết thường.
>>> u"äöü".encode('utf-8')
'\xc3\xa4\xc3\xb6\xc3\xbc'
Nếu bạn có dữ liệu trong một bảng mã nào đó và muốn tạo ra một chuỗi
Unicode tương ứng từ nó, bạn có thể dùng hàm unicode() với tên bảng mã là
thông số thứ hai.
>>> unicode('\xc3\xa4\xc3\xb6\xc3\xbc', 'utf-8')
u'\xe4\xf6\xfc'
3.1.4 Danh sách
Python biết một số kiểu dữ liệu gộp (compound) , dùng để nhóm các giá trị với
nhau. Kiểu linh hoạt nhất là danh sách (list), có thể được viết như là một danh
sách các giá trị phân cách bởi dấu phẩy ở giữa ngoặc vuông.
>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]
9 of 12 08/31/2011 07:38 AM