Gunakan format()
fungsinya :
>>> format(14, '#010b')
'0b00001110'
The format()
Fungsi hanya format input mengikuti Format bahasa Keterangan Mini . The #
membuat format termasuk 0b
awalan, dan 010
ukuran format output untuk cocok 10 karakter lebar, dengan 0
bantalan; 2 karakter untuk 0b
awalan, 8 lainnya untuk digit biner.
Ini adalah opsi paling ringkas dan langsung.
Jika Anda meletakkan hasilnya dalam string yang lebih besar, gunakan string string yang diformat (3,6+) atau gunakan str.format()
dan letakkan argumen kedua untuk format()
fungsi setelah titik dua dari placeholder {:..}
:
>>> 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'
Seperti yang terjadi, bahkan untuk hanya memformat nilai tunggal (jadi tanpa meletakkan hasilnya dalam string yang lebih besar), menggunakan string literal yang diformat lebih cepat daripada menggunakan 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
Tapi saya akan menggunakannya hanya jika kinerja dalam loop ketat penting, karena format(...)
mengkomunikasikan maksud lebih baik.
Jika Anda tidak ingin 0b
awalan, cukup jatuhkan #
dan sesuaikan panjang bidang:
>>> format(14, '08b')
'00001110'