Cách in số thập lục phân trong Python

Một chuỗi hex hoặc một chuỗi hexadecimal là một trong số ít dạng dữ liệu được cung cấp bởi Python để lưu trữ và biểu diễn dữ liệu. Một chuỗi hex thường được biểu diễn với tiền tố là 0x. Tuy nhiên, chúng ta có thể loại bỏ 0x này và chỉ in ra giá trị hex ban đầu

Hướng dẫn này tập trung vào và trình bày một số cách có sẵn để in hex mà không cần 0x bằng Python

Làm cách nào để in hex mà không cần 0x trong Python?

Có một số cách khác nhau để in hex mà không cần 0x bằng Python, một số cách phổ biến nhất được mô tả kỹ lưỡng trong bài viết dưới đây

Có một số cách để chuyển đổi kiểu dữ liệu thành biểu diễn hex, hầu hết trong số chúng cung cấp cách trực tiếp để in biểu diễn hex mà không cần tiền tố 0x. Hơn nữa, các chức năng khác không cung cấp cách trực tiếp cũng có thể được điều chỉnh

Như một ví dụ trong hướng dẫn này, chúng tôi sẽ lấy một biến có kiểu dữ liệu hexadecimal1 và biểu diễn dữ liệu được lưu trữ trong đó ở định dạng hex mà không sử dụng tiền tố 0x

Sử dụng cắt lát cùng với hàm hexadecimal4

Một khái niệm có hiệu quả cao trong trường hợp này là cắt chuỗi. Đó là một cách để có được một hexadecimal5 từ bất kỳ chuỗi đã cho nào bằng cách cắt nó từ đầu hoặc từ cuối

Sau khi sử dụng hàm hexadecimal4 trên giá trị hexadecimal1 đã cho, chuỗi hexadecimal thu được hoặc đơn giản là chuỗi hex có thể được cắt để loại bỏ tiền tố 0x trong khi sử dụng lệnh in

Đoạn mã sau sử dụng cắt lát cùng với hàm hexadecimal4 để in hex mà không cần 0x trong Python

Sử dụng cắt lát cùng với hàm hex()

1

2

3

4

 

a = hex(2022)

in(a[2:])

 

Đoạn mã trên cung cấp đầu ra sau

7e6

Sử dụng hàm hex3 cùng với hàm hexadecimal4

Hàm hex3 được sử dụng để thay thế bất kỳ cụm từ cụ thể nào bằng một cụm từ khác. Cả cụm từ được chỉ định và từ thay thế đều được truyền dưới dạng đối số cho hàm này

Trong trường hợp của chúng tôi, sau khi sử dụng hàm hexadecimal4, chúng tôi chỉ cần thay thế cụm từ hex7 của chuỗi hex và chèn một hex9 vào vị trí của nó

Đoạn mã sau sử dụng hàm replace() cùng với hàm hex() để in hex mà không cần 0x trong Python

Sử dụng hàm replace() cùng với hàm hex()

1

2

3

4

 

a = hex(2022)

in(a. thay thế('x', '0'))

 

Đoạn mã trên cung cấp đầu ra sau

007e6

Khi dẫn đầu 0x1 không cản trở hoặc thay đổi giá trị của một số, việc thay thế hex7 bằng hex9 là hoàn toàn hợp lệ từ góc độ logic. Nó có thể không mang lại kết quả thẩm mỹ nhất vì chuỗi sau đó sẽ bắt đầu bằng hai 0x1 đứng đầu, nhưng nó thành công trong việc đưa ra câu trả lời đúng

Sử dụng chức năng cắt lát và hàm zfill() cùng với hàm hex()

Phương thức 0x5 trong Python được sử dụng để thêm một dấu vết dẫn đầu của 0x1 vào một chuỗi. Số lượng số 0 được thêm vào được chỉ định và chuyển thành đối số cho hàm này

Sau khi sử dụng hàm hexadecimal4, chuỗi hex thu được có thể được cắt một cách đơn giản và sau đó có thể thêm một vệt các số 0 đứng đầu vào chuỗi trong trường hợp chuỗi 0x đã bị xóa

Đoạn mã sau sử dụng phép cắt và hàm 0x5 cùng với hàm hex() để in hex mà không cần 0x trong Python

Sử dụng chức năng cắt lát và hàm zfill() cùng với hàm hex()

1

2

3

4

 

a = hex(2022)

in(a[2:]. zfill(4))

 

Đoạn mã trên cung cấp đầu ra sau

07e6

Sử dụng hàm 0x2

Hàm 0x2 là một trong những cách lâu đời nhất trong sách để triển khai định dạng chuỗi trong Python. Nó linh hoạt và hoạt động trong cả phiên bản Python mới và cũ. Chuỗi 0x2 cũng là một phương thức khác có thể trả về chuỗi hex bằng cách chuyển đổi nó từ bất kỳ loại dữ liệu nào khác

Hàm 0x2 sử dụng trình xác định 0x7 để chuyển đổi một chuỗi hexadecimal1 thành một chuỗi hex. Thay vào đó, nếu chúng ta sử dụng trình xác định chung chung hex7, nó sẽ trả về một chuỗi hex không có tiền tố 0x

Đoạn mã sau sử dụng hàm format() để in hex mà không cần 0x trong Python

Sử dụng hàm format()

1

2

3

4

5

 

a = 2022

z = định dạng(a, 'x')

in(z)

 

Đoạn mã trên cung cấp đầu ra sau

7e6

Sử dụng chuyển đổi hex4

Chuyển đổi hex4 là một phương pháp cũ để triển khai định dạng chuỗi, sau này đã bị ngừng sau khi giới thiệu Python 3. 6. Tuy nhiên, đây vẫn là một phương pháp hữu ích nếu phiên bản Python cũ hơn đang được người đọc sử dụng

Giống như hàm 0x2, phiên bản định dạng chuỗi này cũng sử dụng các từ chỉ định và ký hiệu hex4 ở đây là một từ chỉ định. Chúng ta cần lưu ý rằng nếu chúng ta sử dụng hex8 thì chuỗi hex thu được có chứa tiền tố 0x, còn nếu chúng ta chỉ sử dụng dấu hex4 thì chúng ta không nhận được tiền tố 0x trong chuỗi thu được. Điều này có ích trong trường hợp của chúng tôi vì chúng tôi không cần tiền tố mà chỉ cần chuỗi hex tiêu chuẩn

Đoạn mã sau sử dụng chuyển đổi hex4 để in hex mà không cần 0x trong Python

Sử dụng chuyển đổi %x

1

2

3

4

5

 

a = 2022

z = ("%x" %< a)

in(z)

 

Đoạn mã trên cung cấp đầu ra sau

7e6

đọc thêm

In int dưới dạng hex trong Python

Đọc thêm →

Python hex sang int

Đọc thêm →

Sử dụng chuỗi f

Chuỗi F đã được giới thiệu với Python 3. 6 và đã nhanh chóng trở thành phương thức tiếp theo để triển khai định dạng chuỗi trong Python. Nó có rất nhiều lợi thế so với các phương pháp khác vì nó đơn giản hơn để thực hiện và nhanh hơn so với các phương pháp cùng loại

Các chuỗi F sử dụng các dấu ngoặc nhọn bao quanh giá trị hexadecimal1 đã cho và bộ xác định định dạng, cả hai đều được phân tách bằng dấu hai chấm

Đoạn mã sau sử dụng chuỗi f để in hex mà không cần 0x trong Python

Sử dụng chuỗi f

1

2

3

4

5

 

a = 2022

z = f'{a. x}'

in(z)

 

Đoạn mã trên cung cấp đầu ra sau

7e6

Chúng ta nên lưu ý rằng phương pháp này chỉ hoạt động trên các trình biên dịch chạy phiên bản Python cao hơn hoặc bằng Python 3. 6

Sử dụng hàm 0x8 cùng với hàm hex()

Hàm 0x8, như tên gợi ý, được sử dụng để chuyển đổi một giá trị đã cho thành kiểu dữ liệu 0x0. Nó có thể được sử dụng cùng với hàm hexadecimal4 để in hex mà không cần 0x trong Python

Khi giá trị hexadecimal1 đã cho trước tiên được chuyển đổi thành giá trị 0x4 bằng hàm 0x8 và sau đó được chuyển đổi thành giá trị hex sau đó, nó không giữ lại tiền tố 0x mà hàm hexadecimal4 thường trả về cùng với chuỗi được chuyển đổi

Đoạn mã sau sử dụng hàm to_bytes() cùng với hàm hex() để in hex mà không cần 0x trong Python

Sử dụng hàm to_bytes() cùng với hàm hex()

1

2

3

4

 

a = 2022

in(a. to_byte(2, " . ).hex())

 

Đoạn mã trên cung cấp đầu ra sau

07e6

Phần kết luận

Bài viết này cung cấp bảy cách tiếp cận khác nhau để thực hiện tác vụ in hex mà không cần 0x bằng Python, tất cả đều có ưu điểm và nhược điểm riêng. Người dùng có thể chọn bất kỳ phương pháp nào theo nhu cầu của họ vì tất cả các phương pháp được đề cập ở trên đều cung cấp câu trả lời chính xác mà không gặp bất kỳ rắc rối nào