Chắc hẳn bạn đã học về các kiểu dữ liệu khác nhau trong python chẳng hạn như chuỗi và kiểu dữ liệu số như số nguyên và số dấu phẩy động. Trong bài viết này, bạn sẽ tìm hiểu về một kiểu dữ liệu khác được gọi là byte. Bạn sẽ nghiên cứu các khái niệm cơ bản đằng sau byte trong python và sẽ triển khai các loại hoạt động khác nhau trên byte để hiểu các khái niệm
Byte trong Python là gì?
Nói chung, khi chúng tôi lưu bất kỳ dữ liệu nào trong bộ lưu trữ thứ cấp, dữ liệu đó sẽ được mã hóa theo một loại mã hóa nhất định, chẳng hạn như ASCII, UTF-8 và UTF-16 cho chuỗi, PNG, JPG và JPEG cho hình ảnh cũng như mp3 và wav cho âm thanh . Khi chúng tôi truy cập lại dữ liệu bằng thao tác đọc tệp python, nó sẽ được giải mã thành văn bản, hình ảnh hoặc âm thanh tương ứng. Các đối tượng byte chứa dữ liệu mà máy có thể đọc được và chúng ta có thể lưu trữ một đối tượng byte trực tiếp vào bộ lưu trữ thứ cấp.
Trong python, chúng ta có thể tạo các đối tượng byte một cách rõ ràng từ các dữ liệu khác như danh sách, chuỗi, v.v.
Làm cách nào để tạo byte trong Python?
Để tạo các đối tượng byte, chúng ta có thể sử dụng hàm bytes[]. Hàm bytes[] lấy ba tham số làm đầu vào, tất cả đều là tùy chọn. Đối tượng phải được chuyển đổi thành byte được chuyển thành tham số đầu tiên. Tham số thứ hai và thứ ba chỉ được sử dụng khi tham số đầu tiên là chuỗi. Trong trường hợp này, tham số thứ hai là mã hóa của chuỗi và tham số thứ ba là tên của phản hồi lỗi được thực thi khi mã hóa không thành công. Hàm bytes[] trả về một đối tượng byte bất biến. Trong các phần tiếp theo, chúng ta sẽ hiểu hoạt động của hàm bytes[] bằng cách tạo các đối tượng byte từ các đối tượng dữ liệu khác nhau
Tạo một đối tượng byte có kích thước nhất định
Để tạo một đối tượng byte có kích thước bất kỳ, chúng ta sẽ chuyển kích thước đó làm đầu vào cho phương thức bytes[] và một đối tượng byte có kích thước yêu cầu được tạo, được khởi tạo cho tất cả các số không. Điều này có thể được hiểu từ ví dụ sau
bytes_obj = bytes[10]
print["The bytes object is:", bytes_obj]
print["Size of the bytes object is:", len[bytes_obj] ]
đầu ra
The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
Chuyển đổi Chuỗi thành byte
Để chuyển đổi một chuỗi thành đối tượng byte, chúng ta sẽ chuyển chuỗi đó làm đầu vào đầu tiên và mã hóa làm đầu vào thứ hai cho hàm bytes[]. Ngoài ra còn có một đối số thứ ba cho phản hồi lỗi nhưng có thể tránh được để đơn giản tại thời điểm này. Hàm trả về một đối tượng bytes với chuỗi được mã hóa. Điều này có thể được hiểu như sau
myString = "Pythonforbeginners.com"
print["The given string is:" , myString]
bytes_obj = bytes[myString , "UTF-8"]
print["The bytes object is:", bytes_obj]
print["Size of the bytes object is:", len[bytes_obj] ]
đầu ra
The given string is: Pythonforbeginners.com
The bytes object is: b'Pythonforbeginners.com'
Size of the bytes object is: 22
Chuyển đổi danh sách thành byte
Chúng ta cũng có thể chuyển đổi bất kỳ đối tượng có thể lặp lại nào như danh sách hoặc tuple thành đối tượng byte bằng cách sử dụng hàm bytes[]. Để thực hiện thao tác này, chúng ta chỉ cần chuyển đối tượng có thể lặp lại cho hàm bytes[] trả về đối tượng bytes tương ứng. Hãy nhớ rằng đối tượng bytes là bất biến và không thể sửa đổi. Chúng ta có thể chuyển đổi một danh sách thành byte bằng hàm bytes[] như sau
myList = [1,2,3,4,5]
print["The given list is:" , myList]
bytes_obj = bytes[myList]
print["The bytes object is:", bytes_obj]
print["Size of the bytes object is:", len[bytes_obj] ]
đầu ra
The given list is: [1, 2, 3, 4, 5]
The bytes object is: b'\x01\x02\x03\x04\x05'
Size of the bytes object is: 5
Hãy nhớ rằng danh sách được chuyển đến hàm bytes[] chỉ nên chứa các phần tử. Truyền danh sách s với các số hoặc chuỗi dấu phẩy động sẽ khiến hàm bytes[] ném TypeError
Phần kết luận
Trong bài viết này, chúng ta đã biết các đối tượng byte là gì và cách chúng ta có thể tạo các đối tượng byte từ các chuỗi lặp và chuỗi bằng cách sử dụng phương thức bytes[]. Chúng ta cũng có thể viết các chương trình được sử dụng trong bài viết này với việc xử lý ngoại lệ bằng cách sử dụng python try except để làm cho chương trình mạnh mẽ hơn và xử lý lỗi một cách có hệ thống. Hãy theo dõi để biết thêm các bài viết thông tin
Có liên quan
Đào tạo Python được đề xuất
Món ăn. Python 3 cho người mới bắt đầu
Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến thức cơ bản
Sự khác biệt giữa
The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
1 và The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
2 là The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
1 trả về một đối tượng không thể sửa đổi và The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
2 trả về một đối tượng có thể sửa đổi Phương thức
The bytes object is: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Size of the bytes object is: 10
1 trả về một đối tượng bất biến của lớp được khởi tạo với chuỗi số nguyên trong khoảng từ 0 đến 256cú pháp
bytes[source, encoding, errors]
Thông số
- nguồn. [Tùy chọn] Một số nguyên hoặc có thể lặp lại để chuyển đổi nó thành một mảng byte
- Nếu nguồn là một chuỗi, nó phải có tham số mã hóa
- Nếu nguồn là một số nguyên, mảng sẽ có kích thước đó và sẽ được khởi tạo với các byte rỗng
- Nếu nguồn là một đối tượng phù hợp với giao diện bộ đệm, bộ đệm chỉ đọc của đối tượng sẽ được sử dụng để khởi tạo mảng byte
- Nếu nguồn là đối tượng có thể lặp lại, nó phải có các phần tử số nguyên trong khoảng từ 0 đến 256
- mã hóa. [Tùy chọn] Mã hóa của chuỗi nếu nguồn là một chuỗi
- lỗi. [Tùy chọn] Hành động cần thực hiện nếu chuyển đổi mã hóa không thành công
Giá trị trả về
Trả về một đối tượng byte
Ví dụ sau chuyển đổi số nguyên đã cho thành byte
Ví dụ. Chuyển đổi Int sang Byte
Sao chépprint[bytes[1]]
print[bytes[2]]
print[bytes[3]]
đầu ra
________số 8
Nếu đối số ________ 70 là một chuỗi và không có phương pháp mã hóa nào được chỉ định, một ngoại lệ ________ 71 sẽ được trả về