Sử dụng format()
chức năng :
>>> format(14, '#010b')
'0b00001110'
Các format()
chức năng đơn giản là định dạng đầu vào sau khi Format ngôn ngữ kỹ thuật nhỏ . Các #
làm cho định dạng bao gồm các 0b
tiền tố, và010
kích thước định dạng đầu ra để phù hợp với 10 ký tự chiều rộng, với 0
đệm; 2 ký tự cho 0b
tiền tố, 8 ký tự còn lại cho các chữ số nhị phân.
Đây là tùy chọn nhỏ gọn và trực tiếp nhất.
Nếu bạn đang đặt kết quả trong một chuỗi lớn hơn, hãy sử dụng một chuỗi được định dạng bằng chữ (3.6+) hoặc sử dụng str.format()
và đặt đối số thứ hai cho format()
hàm sau dấu hai chấm của trình giữ chỗ {:..}
:
>>> value = 14
>>> f'The produced output, in binary, is: {value:#010b}'
'The produced output, in binary, is: 0b00001110'
>>> 'The produced output, in binary, is: {:#010b}'.format(value)
'The produced output, in binary, is: 0b00001110'
Khi điều đó xảy ra, ngay cả khi chỉ định dạng một giá trị (vì vậy không đặt kết quả vào một chuỗi lớn hơn), sử dụng chuỗi ký tự được định dạng nhanh hơn so với sử dụng format()
:
>>> import timeit
>>> timeit.timeit("f_(v, '#010b')", "v = 14; f_ = format") # use a local for performance
0.40298633499332936
>>> timeit.timeit("f'{v:#010b}'", "v = 14")
0.2850222919951193
Nhưng tôi chỉ sử dụng khi hiệu suất trong một vòng lặp chặt chẽ, như format(...)
truyền đạt ý định tốt hơn.
Nếu bạn không muốn 0b
tiền tố, chỉ cần thả #
và điều chỉnh độ dài của trường:
>>> format(14, '08b')
'00001110'