Dekorieren der Hex-Funktion zum Auffüllen von Nullen

Ich habe diese einfache Funktion geschrieben:

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'

Obwohl dies für mich klar genug ist und zu meinem Anwendungsfall passt (ein einfaches Testwerkzeug für einen einfachen Drucker), kann ich nicht anders, als zu denken, dass es viel Raum für Verbesserungen gibt, und dies könnte auf etwas sehr Knackiges reduziert werden.

Welche anderen Ansätze gibt es zu diesem Problem?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage