Đối tượng
>>> str future.types.newstr.newstr9 trong Python 3 khá giống nhưng không giống với đối tượng
>>> str future.types.newstr.newstr0 trong Python 2
Sự khác biệt chính là kiểm tra loại chặt chẽ hơn đối với
>>> str future.types.newstr.newstr9 của Py3, thực thi sự phân biệt giữa chuỗi unicode và chuỗi byte, chẳng hạn như khi so sánh, nối, nối hoặc thay thế các phần của chuỗi
Ngoài ra còn có những khác biệt khác, chẳng hạn như
>>> str future.types.newstr.newstr2 của chuỗi unicode trong Py2 có tiền tố
>>> str future.types.newstr.newstr0, so với chỉ đơn giản là
>>> str future.types.newstr.newstr1 và việc loại bỏ phương thức
>>> str future.types.newstr.newstr2 trong Py3
>>> str future.types.newstr.newstr3 chứa loại
>>> str future.types.newstr.newstr4 là backport của đối tượng
>>> str future.types.newstr.newstr9 từ Python 3. Điều này kế thừa từ lớp
>>> str future.types.newstr.newstr0 của Python 2 nhưng có các tùy chỉnh để cải thiện khả năng tương thích với đối tượng
>>> str future.types.newstr.newstr9 của Python 3. Bạn có thể sử dụng nó như sau
>>> from __future__ import unicode_literals >>> from builtins import str
Trên Py2, điều này mang lại cho chúng tôi
>>> str future.types.newstr.newstr
[Trên Py3, nó chỉ đơn giản là đối tượng
>>> str future.types.newstr.newstr9 dựng sẵn thông thường. ]
Sau đó, ví dụ, đoạn mã sau có tác dụng tương tự trên Py2 như trên Py3
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be
Nhiều hoạt động khác kết hợp chuỗi và byte hoặc các loại khác được phép trên Py2 với lớp
>>> str future.types.newstr.newstr9 mặc dù chúng là bất hợp pháp với Python 3. Ví dụ
>>> s2 = b'/' + str['ABCD'] >>> s2 '/ABCD' >>> type[s2] future.types.newstr.newstr
Điều này được cho phép để tương thích với các phần của thư viện chuẩn Python 2 và các thư viện bên thứ ba khác nhau kết hợp chuỗi byte và chuỗi unicode một cách lỏng lẻo. Một ví dụ là
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be0 trên Python 2, cố gắng thêm chuỗi byte
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be1 vào các đối số của nó, cho dù chúng có phải là unicode hay không. [Xem
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be2. ] Một ví dụ khác là hàm
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be3 trong Django 1. 4 của
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be4
Theo hầu hết các cách khác, các đối tượng
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be5 này trên Py2 có các hành vi giống như đối tượng
>>> str future.types.newstr.newstr9 của Python 3
>>> str future.types.newstr.newstr6
Loại
>>> str future.types.newstr.newstr9 từ
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be8 cũng cung cấp hỗ trợ cho trình xử lý lỗi
>>> s = str[u'ABCD'] >>> assert s != b'ABCD' >>> assert isinstance[s.encode['utf-8'], bytes] >>> assert isinstance[b.decode['utf-8'], str] These raise TypeErrors: >>> bytes[b'B'] in s Traceback [most recent call last]: File "", line 1, in TypeError: 'in ' requires string as left operand, not >>> s.find[bytes[b'A']] Traceback [most recent call last]: File "", line 1, in TypeError: argument can't be9 trên Python 2. x. Đây là một ví dụ hoạt động giống hệt trên Python 2. x và 3. x
Bạn có thể nhập chuỗi bằng Python không?
Đó là một mô-đun tích hợp sẵn và chúng ta phải nhập nó trước khi sử dụng bất kỳ hằng số và lớp nào của nó .
${} trong Python là gì?
Nó sử dụng lớp Mẫu từ mô-đun chuỗi. Nó có một cú pháp hơi giống với. format[] khi được thực hiện với từ khóa, nhưng thay vì dấu ngoặc nhọn để xác định trình giữ chỗ, nó sử dụng ký hiệu đô la [$]. ${} cũng hợp lệ và phải được đặt khi một chuỗi hợp lệ xuất hiện sau phần giữ chỗ .
Thư viện nào được sử dụng cho chuỗi trong Python?
Mô-đun chuỗi - Thư viện chuẩn Python [Sách]