kurs - python sinus plotten




Netteste Weise, Nullen aufzuspannen, um zu string (8)

Für Postleitzahlen, die als ganze Zahlen gespeichert sind:

>>> a = 6340
>>> b = 90210
>>> print '%05d' % a
06340
>>> print '%05d' % b
90210

Was ist der pythischste Weg, um eine numerische Zeichenkette mit Nullen nach links aufzufüllen, dh, die numerische Zeichenkette hat eine bestimmte Länge?


Für Zahlen:

print "%05d" % number

Siehe auch: Python: String-Formatierung .

EDIT : Es ist erwähnenswert, dass seit gestern 3. Dezember 2008 diese Methode der Formatierung zugunsten der format String-Methode veraltet ist:

print("{0:05d}".format(number)) # or
print(format(number, "05d"))

Siehe PEP 3101 für Details.


Funktioniert sowohl in Python 2 als auch in Python 3:

>>> "{:0>2}".format("1")  # Works for both numbers and strings.
'01'
>>> "{:02}".format(1)  # Only works for numbers.
'01'

Saiten:

>>> n = '4'
>>> print n.zfill(3)
004

Und für Zahlen:

>>> n = 4
>>> print '%03d' % n
004
>>> print format(n, '03') # python >= 2.6
004
>>> print '{0:03d}'.format(n)  # python >= 2.6
004
>>> print '{foo:03d}'.format(foo=n)  # python >= 2.6
004
>>> print('{:03d}'.format(n))  # python >= 2.7 + python3
004
>>> print('{0:03d}'.format(n))  # python 3
004
>>> print(f'{n:03}') # python >= 3.6
004

Dokumentation zur String-Formatierung


Sie können auch "0" wiederholen, es str(n) voranstellen und die Scheibe mit der weitesten Breite erhalten. Schneller und dreckiger kleiner Ausdruck.

def pad_left(n, width, pad="0"):
    return ((pad * width) + str(n))[-width:]

Verwenden rjust einfach die rjust Methode des String-Objekts.

In diesem Beispiel wird eine Zeichenfolge aus 10 Zeichen erstellt, die bei Bedarf gepolstert wird.

>>> t = 'test'
>>> t.rjust(10, '0')
>>> '000000test'

>>> '99'.zfill(5)
'00099'
>>> '99'.rjust(5,'0')
'00099'

wenn Sie das Gegenteil wollen:

>>> '99'.ljust(5,'0')
'99000'

>>> width = 4
>>> x = 5
>>> print("%0*d" %(width,x))
>>> 00005

Das wird in Python 3.x funktionieren





string