Ich schrieb diese einfache Funktion:Dekorieren Hex Funktion Pad Nullen
def padded_hex(i, l):
given_int = i
given_len = l
hex_result = hex(given_int)[2:] # remove '0x' from beginning of str
num_hex_chars = len(hex_result)
extra_zeros = '0' * (given_len - num_hex_chars) # may not get used..
return ('0x' + hex_result if num_hex_chars == given_len else
'?' * given_len if num_hex_chars > given_len else
'0x' + extra_zeros + hex_result if num_hex_chars < given_len else
None)
Beispiele:
padded_hex(42,4) # result '0x002a'
hex(15) # result '0xf'
padded_hex(15,1) # result '0xf'
Während dies für mich klar genug ist und paßt meinen Anwendungsfall (ein einfaches Testwerkzeug für ein einfacher Drucker) Ich kann mir nicht helfen zu denken, dass es viel Raum für Verbesserungen gibt, und das könnte zu etwas sehr prägnant zusammengequetscht werden.
Welche anderen Ansätze gibt es für dieses Problem?
Ist es möglich, dies als eine Formatzeichenfolge in Python 3.6 zu schreiben? –
@RichardNeumann: Ja, hast du es probiert? –
Ja, aber ohne Erfolg, da ich die korrekte Syntax dafür nicht herausfinden kann: 'value = 42; Auffüllen = 6; f "{value: # 0 {padding} x}" 'löst einen Syntaxfehler aus:' Datei "", Zeile 1 f "{wert: # 0 {padding} x}" ^ SyntaxError: ungültige Syntax' –