Làm thế nào lớn là một chuỗi trong byte Python?
Phương thức 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 Show
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ố 8 có ba tham số tùy chọn
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 byteChuyể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 byteCó 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().
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” Đầu ra như sau.
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 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 3Kể 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. 0 - mỗi chuỗi là một 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 - 1
Chuỗi byte trong Python 3 được gọi chính thức là 2, một chuỗi số nguyên bất biến trong phạm vi 0 <= x < 256. Một đối tượng giống như 2 khác được thêm vào trong 2. 6 là 4 - tương tự như 2, nhưng có thể thay đổiChuyể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 6 tích hợp cho lớp 2Chuyển định dạng mã hóa, chúng tôi đã giải mã đối tượng 2 thành một chuỗi và in nóChuyển đổi byte thành chuỗi bằng codecNgoài ra, chúng ta cũng có thể sử dụng mô-đun 9 tích hợp cho mục đích nàybytes([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
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 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ả 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 2Trong 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 4Tuy 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 7Như 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ụ
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 9 3Chuyển đổi byte thành chuỗi bằng codec (Python 2)Hoặc, sử dụng mô-đun 9 5Hãy chú ý đến mã hóa của bạnMộ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à 02 hoặc 03 và cả hai đều có vẻ là chuyển đổi hợp lệPhần kết luậnLà 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) |