437 Stimmen

Beste Weg, um Integer als String mit führenden Nullen zu formatieren?

Ich muss führende Nullen an eine Ganzzahl anhängen, um eine Zeichenkette mit einer bestimmten Anzahl von Ziffern ($cnt) zu erstellen. Wie kann ich diese einfache Funktion am besten von PHP nach Python übersetzen?

function add_nulls($int, $cnt=2) {
    $int = intval($int);
    for($i=0; $i<($cnt-strlen($int)); $i++)
        $nulls .= '0';
    return $nulls.$int;
}

Gibt es eine Funktion, mit der dies möglich ist?

835voto

Sie können die zfill() Methode, um eine Zeichenkette mit Nullen aufzufüllen:

In [3]: str(1).zfill(2)
Out[3]: '01'

262voto

user518450 Punkte 2608

Die Standardmethode ist die Verwendung von Formatstring-Modifikatoren. Diese Methoden zur Formatierung von Zeichenketten stehen in den meisten Programmiersprachen zur Verfügung (z. B. über die Funktion sprintf in C) und sind ein nützliches Hilfsmittel, das man kennen sollte.

Um eine Zeichenkette der Länge 5 auszugeben:

... in Python 3.5 und höher:

i = random.randint(0, 99999)
print(f'{i:05d}')

... Python 2.6 und höher:

print '{0:05d}'.format(i)

... vor Python 2.6:

print "%05d" % i

Siehe: https://docs.python.org/3/library/string.html

125voto

SergioAraujo Punkte 9813

Python 3.6 f-strings erlaubt es uns, führende Nullen einfach hinzuzufügen:

number = 5
print(f' now we have leading zeros in {number:02d}')

をご覧ください。 dieser gute Beitrag über diese Funktion.

80voto

SilentGhost Punkte 285785

Wahrscheinlich müssen Sie nur Ihre Ganzzahl formatieren:

'%0*d' % (fill, your_int)

Zum Beispiel,

>>> '%0*d' % (3, 4)
'004'

24voto

clorz Punkte 1073

Python 2.6 erlaubt dies:

add_nulls = lambda number, zero_count : "{0:0{1}d}".format(number, zero_count)

>>>add_nulls(2,3)
'002'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X