Làm thế nào lớn là một chuỗi trong byte Python?

Phương thức

#Using the byte[] method

# initializing string 
str_1 = "Join our freelance network"

str_1_encoded = bytes[str_1,'UTF-8']

#printing the encode string 
print[str_1_encoded]

#printing individual bytes
for bytes in str_1_encoded:
    print[bytes, end = ' ']
8 trả về một đối tượng byte là một chuỗi số nguyên bất biến [không thể sửa đổi] trong phạm vi
bytes[[source[, encoding[, errors]]]]
1

Nếu bạn muốn sử dụng phiên bản có thể thay đổi, hãy sử dụng phương thức bytearray[]

byte[] Tham số

#Using the byte[] method

# initializing string 
str_1 = "Join our freelance network"

str_1_encoded = bytes[str_1,'UTF-8']

#printing the encode string 
print[str_1_encoded]

#printing individual bytes
for bytes in str_1_encoded:
    print[bytes, end = ' ']
8 có ba tham số tùy chọn

  • nguồn [Tùy chọn] - nguồn để khởi tạo mảng byte
  • mã hóa [Tùy chọn] - nếu nguồn là một chuỗi, mã hóa của chuỗi
  • lỗi [Tùy chọn] - nếu nguồn là một chuỗi, hành động cần thực hiện khi chuyển đổi mã hóa không thành công [Đọc thêm. mã hóa chuỗi]

Tham số nguồn có thể được sử dụng để khởi tạo mảng byte theo các cách sau

TypeDescriptionStringChuyển đổi chuỗi thành byte bằng cách sử dụng str. encode[] Cũng phải cung cấp mã hóa và các lỗi tùy chọnIntegerTạo một mảng có kích thước được cung cấp, tất cả được khởi tạo thành nullObjectMột bộ đệm chỉ đọc của đối tượng sẽ được sử dụng để khởi tạo mảng byteIterableTạo một mảng có kích thước bằng với số lần lặp và được khởi tạo cho các phần tử có thể lặp lại

Trong hướng dẫn này, chúng tôi xem xét cách chuyển đổi chuỗi Python thành byte. Chúng tôi xem xét tất cả các phương pháp khác nhau cùng với những hạn chế và lưu ý của chúng

Mục lục - Chuỗi Python thành Byte

  • Chuỗi Python thành byte
  • Phương pháp chuyển đổi chuỗi thành byte
    • Sử dụng byte[]
    • Sử dụng mã hóa[]
  • Hạn chế và hãy cẩn thận - Chuỗi Python thành Byte

Chuỗi Python thành byte

Chuyển đổi chuỗi Python thành Byte đã trở nên khá phổ biến sau khi phát hành Python 3. Điều này phần lớn là do rất nhiều phương pháp xử lý tệp và Máy học yêu cầu bạn chuyển đổi chúng. Trước khi đi sâu vào cách chuyển đổi chúng, trước tiên chúng ta hãy hiểu chúng là gì và chúng khác nhau như thế nào

Trong Python 2, chuỗi và byte là cùng một đối tượng typeByte; . Về bản chất, các chuỗi có thể đọc được bằng con người và để chúng có thể đọc được bằng máy, chúng phải được chuyển đổi thành các đối tượng byte. Chuyển đổi này cũng cho phép dữ liệu được lưu trữ trực tiếp trên đĩa

Quá trình chuyển đổi đối tượng chuỗi thành đối tượng byte được gọi là mã hóa và ngược lại được gọi là giải mã. Chúng tôi xem xét các phương pháp để đạt được điều này dưới đây

Phương pháp chuyển đổi chuỗi thành byte

Có nhiều phương thức có thể được sử dụng để chuyển đổi chuỗi Python thành byte, tuy nhiên, chúng tôi xem xét các phương thức đơn giản và phổ biến nhất có thể được sử dụng

Sử dụng byte[]

Phương thức bytes[] là một hàm sẵn có có thể được sử dụng để chuyển đổi đối tượng thành đối tượng byte

Cú pháp của byte[].
bytes[str, enc, error]

Các byte lấy một đối tượng [trong trường hợp của chúng tôi là một chuỗi], phương thức mã hóa được yêu cầu và chuyển đổi nó thành một đối tượng byte. Phương thức bytes[] chấp nhận đối số thứ ba về cách xử lý lỗi

Chúng ta hãy xem mã để chuyển đổi một chuỗi Python thành byte. Loại mã hóa chúng tôi sử dụng ở đây là “UTF-8”

#Using the byte[] method

# initializing string 
str_1 = "Join our freelance network"

str_1_encoded = bytes[str_1,'UTF-8']

#printing the encode string 
print[str_1_encoded]

#printing individual bytes
for bytes in str_1_encoded:
    print[bytes, end = ' ']
Đầu ra như sau.
b'Join our freelance network'
74 111 105 110 32 111 117 114 32 102 114 101 101 108 97 110 99 101 32 110 101 116 119 111 114 107

Như bạn có thể thấy phương thức này đã chuyển đổi chuỗi thành một chuỗi byte

Ghi chú. Phương thức này chuyển đổi các đối tượng thành các byte bất biến, nếu bạn đang tìm kiếm một phương thức có thể thay đổi, bạn có thể sử dụng phương thức bytearray[]

Sử dụng mã hóa[]

Phương thức

b'Join our freelance network'
74 111 105 110 32 111 117 114 32 102 114 101 101 108 97 110 99 101 32 110 101 116 119 111 114 107
4 là phương thức được đề xuất và sử dụng phổ biến nhất để chuyển đổi chuỗi Python thành byte. Một lý do chính là nó dễ đọc hơn

Trong bài viết này, chúng ta sẽ xem cách chuyển đổi Byte thành Chuỗi trong Python. Đến cuối bài viết này, bạn sẽ có một ý tưởng rõ ràng về những loại này là gì và cách xử lý dữ liệu hiệu quả bằng cách sử dụng chúng

Tùy thuộc vào phiên bản Python bạn đang sử dụng, tác vụ này sẽ khác nhau. Mặc dù Python 2 đã hết tuổi thọ nhưng nhiều dự án vẫn sử dụng nó, vì vậy chúng tôi sẽ đưa vào cả hai cách tiếp cận Python 2 và Python 3

Chuyển đổi byte thành chuỗi trong Python 3

Kể từ Python 3, cách làm việc cũ của ASCII phải thay đổi và Python trở thành Unicode hoàn toàn

Điều này có nghĩa là chúng tôi đã mất loại unicode rõ ràng.

b'Join our freelance network'
74 111 105 110 32 111 117 114 32 102 114 101 101 108 97 110 99 101 32 110 101 116 119 111 114 107
0 - mỗi chuỗi là một
b'Join our freelance network'
74 111 105 110 32 111 117 114 32 102 114 101 101 108 97 110 99 101 32 110 101 116 119 111 114 107
0

Để phân biệt các chuỗi này với các chuỗi phụ cũ tốt, chúng tôi đã giới thiệu một công cụ xác định mới cho chúng -

>>> codecs.decode[b]
"Let's grab a 🍕!"
1

Điều này đã được thêm vào trong Python 2. 6, nhưng nó không phục vụ mục đích thực sự nào ngoài việc chuẩn bị cho Python 3 vì tất cả các chuỗi đều là chuỗi phụ trong 2. 6

Chuỗi byte trong Python 3 được gọi chính thức là

>>> codecs.decode[b]
"Let's grab a 🍕!"
2, một chuỗi số nguyên bất biến trong phạm vi 0 >> codecs.decode[b] "Let's grab a 🍕!" 2 khác được thêm vào trong 2. 6 là
>>> codecs.decode[b]
"Let's grab a 🍕!"
4 - tương tự như
>>> codecs.decode[b]
"Let's grab a 🍕!"
2, nhưng có thể thay đổi

Chuyển đổi byte thành chuỗi bằng giải mã []

Hãy xem cách chúng ta có thể chuyển đổi byte thành Chuỗi, sử dụng phương thức

>>> codecs.decode[b]
"Let's grab a 🍕!"
6 tích hợp cho lớp
>>> codecs.decode[b]
"Let's grab a 🍕!"
2

Chuyển định dạng mã hóa, chúng tôi đã giải mã đối tượng

>>> codecs.decode[b]
"Let's grab a 🍕!"
2 thành một chuỗi và in nó

Chuyển đổi byte thành chuỗi bằng codec

Ngoài ra, chúng ta cũng có thể sử dụng mô-đun

>>> codecs.decode[b]
"Let's grab a 🍕!"
9 tích hợp cho mục đích này

bytes[[source[, encoding[, errors]]]]
5

Tuy nhiên, bạn không thực sự cần phải chuyển tham số mã hóa, bạn nên chuyển nó vào

>>> codecs.decode[b]
"Let's grab a 🍕!"

Chuyển đổi byte thành chuỗi bằng str[]

Cuối cùng, bạn có thể sử dụng hàm

bytes[[source[, encoding[, errors]]]]
70, hàm này chấp nhận nhiều giá trị khác nhau và chuyển đổi chúng thành chuỗi

bytes[[source[, encoding[, errors]]]]
7

Tuy nhiên, hãy đảm bảo cung cấp đối số mã hóa cho

bytes[[source[, encoding[, errors]]]]
70, nếu không, bạn có thể nhận được một số kết quả không mong muốn

bytes[str, enc, error]
0

Điều này đưa chúng ta đến mã hóa một lần nữa. Nếu bạn chỉ định mã hóa sai, trường hợp tốt nhất là chương trình của bạn bị sập vì không thể giải mã dữ liệu. Ví dụ: nếu chúng tôi thử sử dụng hàm

bytes[[source[, encoding[, errors]]]]
70 với
bytes[[source[, encoding[, errors]]]]
73, chúng tôi sẽ nhận được kết quả

bytes[str, enc, error]
3

Điều này thậm chí còn quan trọng hơn vì Python 3 thích sử dụng Unicode - vì vậy nếu bạn đang làm việc với các tệp hoặc nguồn dữ liệu sử dụng mã hóa tối nghĩa, hãy đảm bảo chú ý nhiều hơn

Chuyển đổi byte thành chuỗi trong Python 2

Trong Python 2, một gói byte và một chuỗi thực tế giống nhau - chuỗi là các đối tượng bao gồm các ký tự dài 1 byte, nghĩa là mỗi ký tự có thể lưu trữ 256 giá trị. Đó là lý do tại sao chúng đôi khi được gọi là bytestrings

Điều này thật tuyệt khi làm việc với dữ liệu byte - chúng tôi chỉ cần tải nó vào một biến và chúng tôi sẵn sàng in

bytes[str, enc, error]
4

Tuy nhiên, việc sử dụng các ký tự Unicode trong bytestrings sẽ thay đổi hành vi này một chút

Chuyển đổi byte thành Unicode [Python 2]

Ở đây, chúng ta sẽ phải sử dụng loại

bytes[[source[, encoding[, errors]]]]
74 của Python 2, loại này được giả định và sử dụng tự động trong Python 3. Điều này lưu trữ các chuỗi dưới dạng một loạt các điểm mã, thay vì byte

bytes[[source[, encoding[, errors]]]]
75 biểu thị byte dưới dạng số hex có hai chữ số vì Python không biết cách biểu thị chúng dưới dạng ký tự ASCII

bytes[str, enc, error]
7

Như bạn có thể thấy ở trên, chuỗi Unicode chứa

bytes[[source[, encoding[, errors]]]]
76 - một ký tự thoát Unicode mà thiết bị đầu cuối của chúng tôi hiện biết cách in ra dưới dạng một lát bánh pizza. Việc thiết lập này dễ dàng như sử dụng bộ xác định
bytes[[source[, encoding[, errors]]]]
77 trước giá trị của chuỗi phụ

Vì vậy, làm thế nào để tôi chuyển đổi giữa hai?

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Bạn có thể lấy chuỗi Unicode bằng cách giải mã chuỗi ký tự của mình. Điều này có thể được thực hiện bằng cách xây dựng một đối tượng Unicode, cung cấp chuỗi byte và chuỗi chứa tên mã hóa làm đối số hoặc bằng cách gọi

bytes[[source[, encoding[, errors]]]]
78 trên chuỗi byte

Chuyển đổi byte thành chuỗi bằng cách sử dụng giải mã [] [Python 2]

Bạn cũng có thể sử dụng

bytes[[source[, encoding[, errors]]]]
79 từ mô-đun
>>> codecs.decode[b]
"Let's grab a 🍕!"
9

#Using the byte[] method

# initializing string 
str_1 = "Join our freelance network"

str_1_encoded = bytes[str_1,'UTF-8']

#printing the encode string 
print[str_1_encoded]

#printing individual bytes
for bytes in str_1_encoded:
    print[bytes, end = ' ']
3

Chuyển đổi byte thành chuỗi bằng codec [Python 2]

Hoặc, sử dụng mô-đun

>>> codecs.decode[b]
"Let's grab a 🍕!"
9

#Using the byte[] method

# initializing string 
str_1 = "Join our freelance network"

str_1_encoded = bytes[str_1,'UTF-8']

#printing the encode string 
print[str_1_encoded]

#printing individual bytes
for bytes in str_1_encoded:
    print[bytes, end = ' ']
5

Hãy chú ý đến mã hóa của bạn

Một lời cảnh báo ở đây - byte có thể được diễn giải khác nhau trong các bảng mã khác nhau. Với khoảng 80 mã hóa khác nhau có sẵn, có thể không dễ để biết liệu bạn đã chọn đúng mã hay chưa

Tin nhắn ban đầu là

bytes[str, enc, error]
02 hoặc
bytes[str, enc, error]
03 và cả hai đều có vẻ là chuyển đổi hợp lệ

Phần kết luận

Là lập trình viên, có một số điều chúng ta phải thường xuyên suy nghĩ và tích cực chuẩn bị để tránh những cạm bẫy. Điều này đặc biệt đúng ở các cấp độ thấp hơn, nơi chúng tôi hiếm khi sử dụng ngôn ngữ cấp cao như Python làm trình điều khiển hàng ngày.

Những thứ như bộ ký tự, mã hóa và nhị phân ở đó để nhắc nhở chúng ta rằng công việc của chúng ta là viết mã - mã hóa suy nghĩ của chúng ta thành các giải pháp khả thi. Rất may, rất nhiều suy nghĩ này trở thành một phần thói quen của chúng tôi sau một vài vòng trên bàn phím

Có bao nhiêu byte là một chuỗi trong Python?

Lưu ý rằng mỗi chuỗi trong Python cần thêm 49-80 byte bộ nhớ, nơi chuỗi lưu trữ thông tin bổ sung, chẳng hạn như hàm băm, độ dài, . Đó là lý do tại sao một chuỗi trống chiếm 49 byte bộ nhớ.

Kích thước của chuỗi trong Python là gì?

Để tính độ dài của một chuỗi trong Python, bạn có thể sử dụng phương thức len[] tích hợp sẵn . Nó nhận một chuỗi làm tham số và trả về một số nguyên là độ dài của chuỗi đó. Ví dụ: len[“education”] sẽ trả về 9 vì có 9 ký tự trong “education”.

Làm thế nào lớn là một chuỗi trong byte?

Nhưng còn chuỗi thì sao? . Một tiêu đề đối tượng 8-byte [4-byte SyncBlock và một bộ mô tả loại 4-byte]

Chủ Đề