Bên cạnh việc trải qua định dạng chuỗi, thật thú vị khi có trong tâm trí rằng khi làm việc với các số và đại diện thập lục phân của chúng, chúng tôi thường đang xử lý nội dung byte và quan tâm đến cách các byte liên quan.
Lớp bytes
trong Python 3 đã được làm phong phú với các phương thức trong chuỗi 3.x và int.to_bytes
kết hợp với bytes.hex[]
cung cấp toàn bộ sự kiểm soát của đầu ra các chữ số hex, trong khi bảo tồn ngữ nghĩa của biến đổi [không đề cập đến, giữ chất trung gian " BYTE "Đối tượng đã sẵn sàng để được sử dụng trong bất kỳ giao thức nhị phân nào yêu cầu số]:
In [8]: i = 3735928559
In [9]: i.to_bytes[4, "big"].hex[]
Out[9]: 'deadbeef'
Bên cạnh đó, bytes.hex[]
cho phép một số điều khiển đối với đầu ra, chẳng hạn như chỉ định một dải phân cách cho các chữ số hex:
In [10]: bytes.hex?
Docstring:
Create a string of hexadecimal numbers from a bytes object.
sep
An optional single character or byte to separate hex bytes.
bytes_per_sep
How many bytes between separators. Positive values count from the
right, negative values count from the left.
Example:
>>> value = b'\xb9\x01\xef'
>>> value.hex[]
'b901ef'
>>> value.hex[':']
'b9:01:ef'
>>> value.hex[':', 2]
'b9:01ef'
>>> value.hex[':', -2]
'b901:ef'
.
Xây dựng vấn đề
Phương pháp 1: Cắt lát
print[hex[42]] # 0x2a
Phương pháp 2: Cắt + zfill []
Phương pháp 3: Số hex âm
Phương pháp 1: Cắt lát
Phương pháp 2: Cắt + zfill []
x = hex[42] print[x] # 0x2a print[x[2:]] # 2a
Phương pháp 3: Số hex âm
Đi đâu từ đây?
Nếu bạn in một số thập lục phân, Python sử dụng tiền tố
In [10]: bytes.hex?
Docstring:
Create a string of hexadecimal numbers from a bytes object.
sep
An optional single character or byte to separate hex bytes.
bytes_per_sep
How many bytes between separators. Positive values count from the
right, negative values count from the left.
Example:
>>> value = b'\xb9\x01\xef'
>>> value.hex[]
'b901ef'
>>> value.hex[':']
'b9:01:ef'
>>> value.hex[':', 2]
'b9:01ef'
>>> value.hex[':', -2]
'b901:ef'
2 để chỉ ra rằng nó có một số trong hệ thống thập lục phân chứ không phải trong hệ thống thập phân như số nguyên thông thường.Phương pháp 2: Cắt + zfill []
Phương pháp 3: Số hex âm
print[hex[42][2:].zfill[4]] # 002a
Đi đâu từ đây?
print[hex[42][2:].zfill[8]] # 0000002a
Nếu bạn in một số thập lục phân, Python sử dụng tiền tố
In [10]: bytes.hex?
Docstring:
Create a string of hexadecimal numbers from a bytes object.
sep
An optional single character or byte to separate hex bytes.
bytes_per_sep
How many bytes between separators. Positive values count from the
right, negative values count from the left.
Example:
>>> value = b'\xb9\x01\xef'
>>> value.hex[]
'b901ef'
>>> value.hex[':']
'b9:01:ef'
>>> value.hex[':', 2]
'b9:01ef'
>>> value.hex[':', -2]
'b901:ef'
2 để chỉ ra rằng nó có một số trong hệ thống thập lục phân chứ không phải trong hệ thống thập phân như số nguyên thông thường.
Tuy nhiên, nếu bạn đã biết rằng các số đầu ra là thập lục phân, bạn không nhất thiết phải có tiền tố
In [10]: bytes.hex?
Docstring:
Create a string of hexadecimal numbers from a bytes object.
sep
An optional single character or byte to separate hex bytes.
bytes_per_sep
How many bytes between separators. Positive values count from the
right, negative values count from the left.
Example:
>>> value = b'\xb9\x01\xef'
>>> value.hex[]
'b901ef'
>>> value.hex[':']
'b9:01:ef'
>>> value.hex[':', 2]
'b9:01ef'
>>> value.hex[':', -2]
'b901:ef'
2.
Phương pháp 3: Số hex âm
Đi đâu từ đây?
Nếu bạn in một số thập lục phân, Python sử dụng tiền tố
In [10]: bytes.hex?
Docstring:
Create a string of hexadecimal numbers from a bytes object.
sep
An optional single character or byte to separate hex bytes.
bytes_per_sep
How many bytes between separators. Positive values count from the
right, negative values count from the left.
Example:
>>> value = b'\xb9\x01\xef'
>>> value.hex[]
'b901ef'
>>> value.hex[':']
'b9:01:ef'
>>> value.hex[':', 2]
'b9:01ef'
>>> value.hex[':', -2]
'b901:ef'
2 để chỉ ra rằng nó có một số trong hệ thống thập lục phân chứ không phải trong hệ thống thập phân như số nguyên thông thường.# Negative Hexadecimal print[hex[-42].replace['x', '0']] # -002a # Positive Hexadecimal print[hex[42].replace['x', '0']] # 002a
Đi đâu từ đây?
Đủ lý thuyết. Hãy để có được một số thực hành!
Các lập trình viên được trả tiền sáu con số và hơn thế nữa vì họ có thể giải quyết các vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa.
Để trở nên thành công hơn trong việc mã hóa, giải quyết nhiều vấn đề thực sự hơn cho người thực. Đó là cách bạn đánh bóng các kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, những gì mà việc sử dụng lý thuyết học tập mà không ai cần?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế!
Bạn có muốn ngừng học hỏi với các dự án đồ chơi và tập trung vào các dự án mã thực tế kiếm tiền cho bạn và giải quyết các vấn đề thực sự cho mọi người?
Nếu câu trả lời của bạn là có !, Hãy xem xét việc trở thành một nhà phát triển tự do Python! Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện các kỹ năng trăn của bạn, ngay cả khi bạn là người mới bắt đầu hoàn toàn.YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi Làm thế nào để xây dựng kỹ năng thu nhập cao của bạn Python và tìm hiểu cách tôi phát triển kinh doanh mã hóa của mình trực tuyến và làm thế nào bạn có thể, từ sự thoải mái của bạn riêng nhà.
Tham gia hội thảo trên web miễn phí ngay bây giờ!
Lập trình hài hước
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.