Angenommen, ich wollte die Nummer 123 mit einer variablen Anzahl von gepolsterten Nullen auf der Vorderseite anzeigen.
Wenn ich es zum Beispiel in 5 Ziffern anzeigen wollte, hätte ich Ziffern = 5, die mir geben:
00123
Wenn ich es in 6 Ziffern anzeigen wollte, hätte ich Ziffern = 6 und gebe:
000123
Wie würde ich das in Python machen?
Es gibt eine String-Methode namens zfill:
>>> '12344'.zfill(10)
0000012344
Die linke Seite der Zeichenkette wird mit Nullen aufgefüllt, um die Zeichenkettenlänge N (in diesem Fall 10) zu erhalten.
Wenn Sie es in einer formatierten Zeichenfolge mit der format()
-Methode verwenden, die der älteren Formatierung ''%
Vorgezogen wird
>>> 'One hundred and twenty three with three leading zeros {0:06}.'.format(123)
'One hundred and twenty three with three leading zeros 000123.'
Sehen
http://docs.python.org/library/stdtypes.html#str.format
http://docs.python.org/library/string.html#formatstrings
Hier ist ein Beispiel mit variabler Breite
>>> '{num:0{width}}'.format(num=123, width=6)
'000123'
Sie können das Füllzeichen sogar als Variable angeben
>>> '{num:{fill}{width}}'.format(num=123, fill='0', width=6)
'000123'
'%0*d' % (5, 123)
Mit Einführung formatierter String-Literale (kurz "f-Strings") in Python 3.6 ist es nun möglich, mit einer kürzeren Syntax auf zuvor definierte Variablen zuzugreifen:
>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
Die Beispiele von John La Rooy können wie folgt geschrieben werden
In [1]: num=123
...: fill='0'
...: width=6
...: f'{num:{fill}{width}}'
Out[1]: '000123'
print "%03d" % (43)
Druckt
043
Verwenden Sie die Zeichenfolgenformatierung
print '%(#)03d' % {'#': 2}
002
print '%(#)06d' % {'#': 123}
000123
Mehr Infos hier: Linktext