Usa la format()
funzione :
>>> format(14, '#010b')
'0b00001110'
La format()
funzione formatta semplicemente l'input seguendo il mini linguaggio Specifica formato . La #
rende il formato includono il 0b
prefisso, e 010
un formato di uscita per adattarsi a 10 caratteri larghezza, con 0
imbottitura; 2 caratteri per il 0b
prefisso, gli altri 8 per le cifre binarie.
Questa è l'opzione più compatta e diretta.
Se stai inserendo il risultato in una stringa più grande, usa una stringa formattata letterale (3.6+) o usa str.format()
e inserisci il secondo argomento per la format()
funzione dopo i due punti del segnaposto {:..}
:
>>> 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'
Come succede, anche solo per la formattazione di un singolo valore (quindi senza mettere il risultato in una stringa più grande), usare una stringa formattata letterale è più veloce dell'uso 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
Ma lo userei solo se le prestazioni in un circuito ristretto contano, poiché format(...)
comunica meglio l'intento.
Se non si desidera il 0b
prefisso, è sufficiente rilasciare #
e regolare la lunghezza del campo:
>>> format(14, '08b')
'00001110'