Şu format()
işlevi kullanın :
>>> format(14, '#010b')
'0b00001110'
format()
Fonksiyon sadece aşağıdaki giriş biçimleri Biçim Şartname Mini dili . Bu #
, biçimin 0b
öneki içermesini ve 010
boyut biçimlerinin çıktının 0
dolgu ile 10 karakter genişliğe sığmasını sağlar ; 0b
Önek için 2 karakter , ikili rakamlar için diğer 8 karakter .
Bu en kompakt ve doğrudan seçenektir.
Sonucu daha büyük bir dizeye koyuyorsanız, biçimlendirilmiş bir dize hazır bilgisi (3.6+) kullanın veya işlev str.format()
için ikinci bağımsız değişkeni format()
yer tutucunun kolonundan sonra koyun ve koyun {:..}
:
>>> 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'
Olduğu gibi, yalnızca tek bir değeri biçimlendirmek için bile (yani sonucu daha büyük bir dizeye koymadan), biçimlendirilmiş bir dize değişmezi kullanmak, kullanmaktan daha hızlıdır format()
:
>>> import timeit
>>> timeit.timeit("f_(v, '#010b')", "v = 14; f_ = format")
0.40298633499332936
>>> timeit.timeit("f'{v:#010b}'", "v = 14")
0.2850222919951193
Ancak bunu yalnızca dar bir döngüdeki performans önemliyse format(...)
ve amacı daha iyi ilettiği için kullanırım.
0b
Öneki istemediyseniz , basitçe bırakın #
ve alanın uzunluğunu ayarlayın:
>>> format(14, '08b')
'00001110'