Gegeben:
a = 1
b = 10
c = 100
Wie zeige ich eine führende Null für alle Zahlen mit weniger als zwei Ziffern an?
Dies ist die Ausgabe, die ich erwarte:
01
10
100
python
integer
string-formatting
Ashchristopher
quelle
quelle
x = "%02d.txt" % i
löst TypeError aus (kann 'str'- und' int'-Objekte nicht verketten), aberx = "%02d.txt" % (i,)
nicht. Interessant. Ich frage mich, wo das dokumentiert ist%
Einfügen einer einzelnen Variablen in ein Tupel Sie bei der Verwendung des String-Formatierers auf die sichere Seite bringt.Sie können verwenden
str.zfill
:Drucke:
quelle
"{1:02d}"
anstelle von keine Variablen vorhanden sein können2
(z. B. wenn Sie eine dynamische Funktion erstellen).In Python 2.6+ und 3.0+ würden Sie die
format()
String-Methode verwenden:oder mit dem eingebauten (für eine einzelne Nummer):
Informationen zu den neuen Formatierungsfunktionen finden Sie in der Dokumentation zu PEP-3101 .
quelle
Drucke:
quelle
One zero:{0:02}, two zeros: {0:03}, ninezeros: {0:010}'.format(6)
print '{:02}'.format(1)
Oder dieses:
print '{0:02d}'.format(1)
quelle
In Python> = 3.6 können Sie dies kurz und bündig mit den neuen F-Strings tun, die mit folgenden Methoden eingeführt wurden:
die druckt die Variable mit Namen
val
mit einemfill
Wert von0
und einemwidth
von2
.Für Ihr spezielles Beispiel können Sie dies in einer Schleife tun:
welche druckt:
Weitere Informationen zu F-Strings finden Sie in PEP 498, wo sie eingeführt wurden.
quelle
Ergebnisse in:
Lesen Sie mehr Informationen über String Formatierung% unter Verwendung von in der Dokumentation.
quelle
Der pythonische Weg, dies zu tun:
Auf diese Weise wird die ursprüngliche Zeichenfolge unverändert zurückgegeben, wenn ihre Länge größer als string_width ist. Beispiel:
Ergebnisse:
quelle
Oder eine andere Lösung.
quelle
"{0:0>2}".format(number)
wenn jemand nLeadingZeros möchte, sollte er beachten, dass er auch Folgendes tun kann:"{0:0>{1}}".format(number, nLeadingZeros + 1)
Verwenden Sie eine Formatzeichenfolge - http://docs.python.org/lib/typesseq-strings.html
Zum Beispiel:
quelle
So mache ich es:
Grundsätzlich verwendet zfill die Anzahl der führenden Nullen, die Sie hinzufügen möchten. Es ist also einfach, die größte Zahl zu nehmen, sie in eine Zeichenfolge umzuwandeln und die Länge wie folgt zu ermitteln:
quelle
quelle
Sie können dies mit f-Strings tun .
Dies druckt eine konstante Länge von 8 und füllt den Rest mit Blei auf
0
.quelle
Verwenden:
Oder mit dem
math
Modul:quelle
Die 5 ist die Anzahl der Gesamtziffern.
Ich habe diesen Link verwendet: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/
quelle
Wenn es sich um ein- oder zweistellige Zahlen handelt:
'0'+str(number)[-2:]
oder'0{0}'.format(number)[-2:]
quelle