Nullauffüllung in Python: zfill(), format() und f-Strings erklärt!

目次

1. Einführung

In Python ist es üblich, bei der Formatierung von Zahlen und Strings eine Nullauffüllung (Zero Padding) vorzunehmen. Durch die Verwendung von Nullauffüllung können Sie die Anzahl der Ziffern in Zahlenwerten vereinheitlichen und das Format angleichen. Beispielsweise können Sie die Zahl „5“ als „005“ darstellen, um die Lesbarkeit der Daten zu verbessern oder sie an ein spezifisches Format anzupassen.

In diesem Artikel erläutern wir verschiedene Methoden zur Durchführung von Nullauffüllung in Python und gehen detailliert auf deren Einsatzmöglichkeiten und Hinweise ein. Um es auch für Einsteiger verständlich zu machen, führen wir von den grundlegenden Methoden bis hin zu fortgeschrittenen Beispielen ein – lesen Sie also bitte bis zum Schluss.

1.1 Was ist Nullauffüllung?

In Python ist es üblich, bei der Formatierung von Zahlen und Strings eine Nullauffüllung (Zero Padding) vorzunehmen. Durch die Verwendung von Nullauffüllung können Sie die Anzahl der Ziffern in Zahlenwerten vereinheitlichen und das Format angleichen. Beispielsweise können Sie die Zahl „5“ als „005“ darstellen, um die Lesbarkeit der Daten zu verbessern oder sie an ein spezifisches Format anzupassen.

In diesem Artikel erläutern wir verschiedene Methoden zur Durchführung von Nullauffüllung in Python und gehen detailliert auf deren Einsatzmöglichkeiten und Hinweise ein. Um es auch für Einsteiger verständlich zu machen, führen wir von den grundlegenden Methoden bis hin zu fortgeschrittenen Beispielen ein – lesen Sie also bitte bis zum Schluss.

1.1 Was ist Nullauffüllung?

Nullauffüllung bezeichnet den Prozess, bei dem, wenn eine bestimmte Stellenanzahl nicht erreicht wird, ‚0‘ vorangestellt wird, um die Stellenanzahl auszugleichen. Zum Beispiel wird sie in Fällen wie den folgenden verwendet.

  • Zahlen auf eine feste Stellenanzahl angleichen (z. B.: 7 → 007)
  • Dateinamen oder Datenformate vereinheitlichen (z. B.: image1.pngimage001.png)
  • Datums- oder Uhrzeitdarstellungen vereinheitlichen (z. B.: 3:503:05)

In Python sind mehrere Methoden für die Nullauffüllung verfügbar, und es ist wichtig, die geeignete Methode je nach Anwendungsfall auszuwählen.

1.2 Szenarien, in denen Nullauffüllung in Python benötigt wird

In Python können folgende Szenarien für die Notwendigkeit von Nullauffüllung gedacht werden.

1.2.1 Beim Formatieren von Zahlenwerten

  • Um IDs oder Codes (Produktnummern, Mitgliedsnummern usw.) zu vereinheitlichen
  • Um Zahlen mit einer festen Stellenanzahl auszugeben

1.2.2 Formatierung von Dateinamen oder Daten

  • Nummern von Bilddateien oder Logdateien vereinheitlichen
  • Damit sie beim Sortieren korrekt angeordnet werden (z. B.: file1file001)

1.2.3 Formatierung von Zeit- oder Datumdaten

  • Beim Ausgeben von Daten mit datetime-Objekten Nullauffüllung durchführen
  • Die zweistellige Darstellung beibehalten (z. B.: 2024-3-5 → 2024-03-05)

1.2.4 Formatierung der Programmausgabe

  • Bildschirmdarstellung oder Log-Formate vereinheitlichen
  • Numerische Anzeigen in der UI angleichen, um sie lesbarer zu machen

1.3 Aufbau dieses Artikels

In diesem Artikel erläutern wir die verschiedenen Methoden zur Nullauffüllung in Python in folgender Reihenfolge.

  1. Nullauffüllung in Python: Empfohlene Methoden
  • Konkrete Verwendungsweisen von zfill(), rjust(), format() usw.
  1. Hinweise bei der Nullauffüllung
  • Unterschiede zwischen zfill() und rjust() sowie Leistungsvergleich
  1. Praktische Beispiele für Nullauffüllung im Berufsalltag
  • Zahlenwerte, Datums- und Zeitdaten, Vergleich mit anderen Sprachen usw.
  1. Häufig gestellte Fragen zur Nullauffüllung (FAQ)
  • Häufige Fehler und deren Behebung
  1. Zusammenfassung
  • Die Unterscheidung der Methoden und die Auswahl der optimalen Methode

2. Nullauffüllung in Python: Empfohlene Methoden

Python bietet verschiedene Methoden zur Durchführung einer Nullauffüllung, aber es ist wichtig, die geeignete Methode je nach Anwendungsszenario und Datentyp auszuwählen. In diesem Abschnitt erklären wir detailliert hauptsächlich drei Methoden: zfill(), rjust() und format() (sowie f-Strings).

2.1 Nullauffüllung mit zfill() (die einfachste Methode)

zfill() ist eine der String-Methoden in Python, die 0 links hinzufügt, bis die angegebene Länge erreicht ist. Es handelt sich um eine der einfachsten Methoden zur Nullauffüllung.

Grundlegende Syntax

Zeichenkette.zfill(Stellenanzahl)

Beispiel zur Verwendung

num = "5"
print(num.zfill(3))  # Ausgabe: 005

num2 = "123"
print(num2.zfill(5))  # Ausgabe: 00123

Beispiel für vorzeichenbehaftete Zahlen

num = "-5"
print(num.zfill(4))  # Ausgabe: -005

Vorteile

  • Nullauffüllung ist einfach möglich
  • Erhält Vorzeichen wie - oder +
  • Intuitiv einsetzbar

Nachteile

  • Kann nicht direkt auf Zahlen angewendet werden (String-Konvertierung erforderlich)

2.2 Nullauffüllung mit rjust() (universellere Methode)

rjust() ist eine Methode, die links mit einem beliebigen Zeichen auffüllt, bis die angegebene Länge erreicht ist. Sie kann auch für andere Zwecke als Nullauffüllung verwendet werden.

Grundlegende Syntax

Zeichenkette.rjust(Stellenanzahl, Füllzeichen)

Beispiel zur Verwendung

num = "5"
print(num.rjust(3, "0"))  # Ausgabe: 005

Vorteile

  • Höhere Universalität als zfill() (Zeichen außer 0 sind möglich)
  • Kann auch für die Formatierung anderer Strings verwendet werden

Nachteile

  • Kann nicht direkt auf Zahlen angewendet werden (String-Konvertierung erforderlich)

2.3 Nullauffüllung mit format() und f-Strings

Mit der format()-Methode von Python oder f-Strings (f-Strings) ist eine flexiblere Nullauffüllung möglich.

Methode mit format()

"{:0N}".format(Zahl)

N ist die Stellenanzahl)

Beispiel zur Verwendung

num = 5
print("{:03}".format(num))  # Ausgabe: 005

Methode mit f-Strings

f"{Variable:0N}"

Beispiel zur Verwendung

num = 7
print(f"{num:03}")  # Ausgabe: 007

Vorteile

  • Kann direkt auf Zahlen angewendet werden
  • Flexible Formatierung möglich
  • f-Strings bieten hohe Lesbarkeit

Nachteile

  • f-Strings sind in Python 3.6 und früher nicht verfügbar (Verwendung von format() erforderlich)

2.4 Welche Methode sollte verwendet werden? (Vergleichstabelle)

MethodeAnwendungsobjektDirekte ZahlenunterstützungUnterstützung für vorzeichenbehaftete ZahlenFüllen mit beliebigen Zeichen
zfill()Zeichenkette
rjust()Zeichenkette
format()Zahl/Zeichenkette
f-StringsZahl/Zeichenkette

2.5 Zusammenfassung

In Python gibt es mehrere Methoden zur Nullauffüllung, aber es ist wichtig, die passende je nach Verwendungszweck auszuwählen.

  • Einfache Nullauffüllungzfill()
  • Füllen mit Zeichen außer Nullrjust()
  • Nullauffüllung für Zahlenformat() oder f-Strings
  • Ausrichtung auch für Dezimalstellenformat() oder f-Strings
年収訴求

3. Hinweise beim Durchführen der Nullauffüllung

Es gibt mehrere Methoden, um Nullauffüllung in Python durchzuführen, aber wenn sie nicht angemessen verwendet werden, kann es zu unerwartetem Verhalten oder Fehlern kommen. In diesem Abschnitt erklären wir detailliert die Hinweise beim Einsatz der Nullauffüllung.

3.1 zfill() kann nicht direkt auf Zahlen angewendet werden

zfill() ist eine methode, die nur für Strings gedacht ist, daher führt eine direkte Anwendung auf Zahlen zu einem Fehler.

Falsches Verwendungsbeispiel

num = 5
print(num.zfill(3))  # Fehler: AttributeError: 'int' object has no attribute 'zfill'

Korrekte Verwendungsbeispiel (Umwandlung in String)

num = 5
print(str(num).zfill(3))  # Ausgabe: 005

Um Nullauffüllung bei Zahlen durchzuführen, ist es am besten, format() oder f-Strings zu verwenden.

3.2 Die Behandlung von Vorzeichen bei zfill()

Beim Einsatz von zfill() wird bei negativen Zahlen das Vorzeichen am Anfang beibehalten und dahinter werden Nullen hinzugefügt.

num = "-7"
print(num.zfill(4))  # Ausgabe: -007

Für Nullauffüllung mit Vorzeichen muss format() oder f-Strings verwendet werden und das Vorzeichen manuell behandelt werden.

3.3 Unterschiede zu rjust()

rjust() kann mit Zeichen außer Null auffüllen, berücksichtigt aber das Vorzeichen nicht, weshalb es für die Nullauffüllung von Zahlen mit Vorzeichen nicht geeignet ist.

num = "-5"
print(num.rjust(4, "0"))  # Ausgabe: 00-5  (unerwartetes Verhalten)

Für Nullauffüllung mit Vorzeichen sollte zfill() oder format() verwendet werden.

3.4 Hinweise bei Nullauffüllung mit format() oder f-Strings

Beim Einsatz von format() oder f-Strings kann es bei unangemessener Formatangabe zu unerwarteten Ergebnissen kommen.

Nullauffüllung bei Ganzzahlen

num = 5
print(f"{num:03}")  # Ausgabe: 005

Bei Dezimalzahlen

num = 3.5
print(f"{num:06.2f}")  # Ausgabe: 003.50

Bei Dezimalzahlen ist es wichtig, auch die Nachkommastellen anzugeben.

3.5 Unterschiede in der Leistung

Bei der Verarbeitung großer Datenmengen kann die Leistung je nach Methode variieren.

MethodeAnwendungsgegenstandLeistung
zfill()StringSchnell
rjust()StringSchnell
format()Zahl/StringSchnell
f-StringsZahl/StringAm schnellsten

Insbesondere bei der Verarbeitung großer Datenmengen wird die Verwendung von f-Strings empfohlen.

Für die Verarbeitung großer Datenmengen sind f-Strings (f"{num:03}") am besten geeignet.

3.6 Unterschiede je nach OS oder Python-Version

Einige Formatierungsfunktionen (strftime() usw.) können je nach Betriebssystem unterschiedliches Verhalten zeigen.

from datetime import datetime

now = datetime(2024, 3, 5, 7, 8)
print(now.strftime("%Y-%m-%d %H:%M"))  # Ausgabe: 2024-03-05 07:08

Beim Einsatz der integrierten Nullauffüllung in Python muss auf Unterschiede je nach OS geachtet werden.

3.7 Zusammenfassung

zfill() ist nur für Strings gedacht und unterstützt auch Zahlen mit Vorzeichen, kann aber nicht direkt auf Zahlen angewendet werden
rjust() kann mit Zeichen außer Null auffüllen, ist aber für Zahlen mit Vorzeichen ungeeignet
format() und f-Strings können direkt auf Zahlen angewendet werden, sind am flexibelsten und haben die beste Leistung
✅ Bei Nullauffüllung nach dem Komma muss auch die Anzahl der Nachkommastellen angegeben werden
✅ Bei der Verarbeitung großer Datenmengen sind f-Strings am schnellsten
✅Die Nullauffüllung mit strftime() kann je nach OS unterschiedliches Verhalten zeigen

4. Praktische Anwendungsbeispiele für die Nullauffüllung im beruflichen Alltag

Die Nullauffüllung in Python wird in der täglichen Programmierung und in Geschäfts-Systemen weit verbreitet genutzt. In diesem Abschnitt stellen wir konkrete Anwendungsbeispiele vor, die im beruflichen Alltag nützlich sind.

4.1 Nullauffüllung für numerische Daten (Mitgliedsnummern, Produktcodes usw.)

In Datenbanken oder Managementsystemen ist es üblich, IDs oder Produktcodes auf eine feste Anzahl von Stellen mit Nullauffüllung auszurichten.

4.1.1 Beispiel: Formatierung der Mitgliedsnummer

member_id = "123"
formatted_id = member_id.zfill(5)
print(formatted_id)  # Ausgabe: 00123

4.1.2 Beispiel: Vereinheitlichung des Produktcodes

product_id = 42
formatted_code = f"{product_id:05}"
print(formatted_code)  # Ausgabe: 00042

Verwenden Sie Nullauffüllung für IDs und Codes, um Konsistenz zu gewährleisten
zfill() ist für Strings geeignet, format() kann auch für Zahlen angewendet werden

4.2 Nullauffüllung für Datums- und Zeitdaten (Kombination mit datetime)

Es ist üblich, Datums- und Zeitdaten mit Nullauffüllung in einem einheitlichen Format auszugeben.

4.2.1 Nullauffüllung mit strftime()

from datetime import datetime

now = datetime(2024, 3, 5, 7, 8)
formatted_date = now.strftime("%Y-%m-%d %H:%M")
print(formatted_date)  # Ausgabe: 2024-03-05 07:08

Mit strftime() können automatisch nullauffüllte Datums- und Zeitangaben abgerufen werden

4.2.2 Manuelle Nullauffüllung mit f-Strings

day = 5
month = 3
formatted_date = f"{2024}-{month:02}-{day:02}"
print(formatted_date)  # Ausgabe: 2024-03-05

Mit f"{variable:02}" ist eine manuelle Nullauffüllung möglich

4.3 Unterschiede zwischen Nullauffüllung und Leerzeichenauffüllung

Anstelle von Nullauffüllung gibt es Fälle, in denen die Ausrichtung mit Leerzeichen gewünscht ist. Dies wird z. B. bei Belegen oder Berichten verwendet.

4.3.1 Leerzeichenauffüllung mit rjust()

text = "123"
formatted_text = text.rjust(5)
print(f"'{formatted_text}'")  # Ausgabe: '  123'

zfill() füllt mit 0 auf, rjust() füllt mit Leerzeichen auf

4.4 Vergleich der Nullauffüllung in anderen Sprachen (C, Java) mit Python

Beim Vergleich der Methoden zur Nullauffüllung in Python und anderen Programmiersprachen sticht die Flexibilität von format() und f-Strings in Python hervor.

4.4.1 Im Fall von C

#include <stdio.h>

int main() {
    int num = 7;
    printf("%03dn", num);  // Ausgabe: 007
    return 0;
}

In C ist Nullauffüllung durch den Formatierungs-Spezifizierer %03d möglich

4.4.2 Im Fall von Java

public class Main {
    public static void main(String[] args) {
        int num = 7;
        System.out.printf("%03dn", num);  // Ausgabe: 007
    }
}

In Java ermöglicht printf("%03d") eine Nullauffüllung ähnlich wie in Python

Vorteile von Python

  • Mit format() oder f-Strings kann intuitiver geschrieben werden
  • zfill() oder rjust() usw., es gibt reichlich Methoden für String-Operationen

4.5 Zusammenfassung

Die Nullauffüllung in Python ist besonders nützlich für Datenformatierung, Formatierungsverarbeitung und Datumsverwaltung

Nullauffüllung für Mitgliedsnummern oder Produktcodes

  • zfill() (für Strings) und format() (für Zahlen) angemessen einsetzen

Nullauffüllung für Datums- und Zeitdaten

  • Formatierte Datums- und Zeitangaben mit strftime() abrufen
  • Manuelle Nullauffüllung mit f"{variable:02}" ist ebenfalls möglich

Unterschiede zwischen Nullauffüllung und Leerzeichenauffüllung

  • zfill() fügt Nullen hinzu, rjust() fügt Leerzeichen hinzu

Die Nullauffüllung in Python ist im Vergleich zu anderen Sprachen einfach und flexibel

  • Mit format() oder f-Strings kann intuitiv nullauffüllt werden
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Häufig gestellte Fragen (FAQ) zur Nullauffüllung

Bezüglich der Nullauffüllung in Python haben viele Programmierer gemeinsame Fragen. In diesem Abschnitt heben wir häufige Fragen hervor und erklären die Antworten detailliert.

5.1 zfill() und rjust() – Was ist der Unterschied?

Frage:zfill() und rjust() – Was ist der Unterschied? Welche sollte man verwenden?Antwort:zfill() und rjust() können beide verwendet werden, um Strings auf eine bestimmte Länge auszurichten, unterscheiden sich jedoch in folgenden Punkten.

MethodeFüllzeichenAnwendung auf ZahlenErhalt des Vorzeichens
zfill()nur 0✕ (nur Strings)○ (Vorzeichen am Anfang behalten)
rjust()beliebiges Zeichen✕ (nur Strings)✕ (Vorzeichen nicht berücksichtigt)

Beispiel

num = "-5"

print(num.zfill(4))  # Ausgabe: -005
print(num.rjust(4, "0"))  # Ausgabe: 00-5 (Die Position des Vorzeichens ändert sich)

Für die Nullauffüllung bei vorzeichenbehafteten Zahlen sollte zfill() verwendet werden.
Wenn Sie mit einem Zeichen außer Null auffüllen möchten, verwenden Sie rjust().

5.2 Ist die String-Konvertierung bei der Nullauffüllung von Zahlen notwendig?

Frage: Muss man numerische Daten bei der Nullauffüllung mit str() in Strings umwandeln?Antwort:Da zfill() und rjust() in Python String-Methoden sind, können sie nicht direkt auf numerische Typen (int oder float) angewendet werden. Daher ist eine Konvertierung mit str() notwendig.Beispiel (Fall, in dem String-Konvertierung notwendig ist)

num = 7
print(str(num).zfill(3))  # Ausgabe: 007

Allerdings ist mit format() oder f-Strings eine Nullauffüllung direkt auf Zahlen möglich.Beispiel (ohne String-Konvertierung)

num = 7
print(f"{num:03}")  # Ausgabe: 007

Für die Nullauffüllung von Zahlen sind format() oder f-Strings optimal.

5.3 Wie paddet man datetime-Objekte mit Nullen?

Frage:Wie gibt man datetime-Objekte in Python mit Nullauffüllung aus?Antwort:Mit datetime.strftime() kann man automatisch nullgepaddete Datums- und Zeitangaben erhalten.Beispiel

from datetime import datetime

now = datetime(2024, 3, 5, 7, 8)
print(now.strftime("%Y-%m-%d %H:%M"))  # Ausgabe: 2024-03-05 07:08

Zusätzlich ist es mit f-Strings möglich, manuell nullzu padden.Beispiel

year, month, day = 2024, 3, 5
formatted_date = f"{year}-{month:02}-{day:02}"
print(formatted_date)  # Ausgabe: 2024-03-05

Für nullgepaddete Daten ist strftime() praktisch.

5.4 Ursachen und Lösungen für Fehler (Fehler bei Nullauffüllung)

Frage:Manchmal treten Fehler bei der Nullauffüllung auf. Welche möglichen Ursachen gibt es?Antwort:Hier sind gängige Fehler, ihre Ursachen und Lösungen zusammengefasst.

FehlermeldungUrsacheLösung
AttributeError: 'int' object has no attribute 'zfill'zfill() ist nur für StringsMit str() konvertieren oder format() verwenden
TypeError: non-empty format string passed to object.__format__format() mit None oder list verwendetZu int konvertieren und format() anwenden
ValueError: Unknown format code 'd' for object of type 'str'String an format() übergebenZuerst zu int konvertieren und dann format() anwenden

Beispiel: Behandlung von Fehlern

# Fall, in dem ein Fehler auftritt
num = 7
# print(num.zfill(3))  # Fehler tritt auf

# Korrektur
print(str(num).zfill(3))  # Ausgabe: 007
print(f"{num:03}")  # Ausgabe: 007

Bei Fehlern ist es wichtig, den Datentyp (int / str) zu überprüfen.

5.5 Zusammenfassung

zfill() eignet sich für die Nullauffüllung vorzeichenbehafteter Zahlen
✅ Für die Nullauffüllung von Zahlen sind format() oder f-Strings optimal
✅Für Nullauffüllung bei datetime strftime() verwenden
f"{num:03}" ist die schnellste Methode für Nullauffüllung

6. Zusammenfassung

In diesem Artikel haben wir die Methoden zur Nullauffüllung in Python detailliert erklärt. Die Nullauffüllung ist eine wichtige Verarbeitung, um das Format von Zahlen oder Strings zu vereinheitlichen und die Lesbarkeit und Konsistenz der Daten zu verbessern. Zum Schluss fassen wir die Punkte des Artikels zusammen und ordnen sie so, dass Sie die geeignete Methode zur Nullauffüllung je nach Situation auswählen können.

6.1 Vergleich der Nullauffüllungsmethoden in Python

Python bietet mehrere Methoden zur Nullauffüllung, die jeweils für bestimmte Anwendungsfälle geeignet sind.

MethodeMerkmaleAnwendungsgegenstandAuf Zahlen anwendbarUnterstützung für vorzeichenbehaftete ZahlenBeliebige Zeichenauffüllung
zfill()Strings mit Nullen auffüllenString✕ (String-Konvertierung erforderlich)
rjust()Rechtsbündig auffüllenString✕ (String-Konvertierung erforderlich)
format()Formatangabe möglichString/Zahl
f-StringHoch lesbar und schnellString/Zahl

Für die Nullauffüllung von Zahlen ist format() oder f-String optimalFür vorzeichenbehaftete Nullauffüllung ist zfill() praktischFür Auffüllung mit Zeichen außer Null verwenden Sie rjust()

6.2 Rückblick auf konkrete Verwendungsbeispiele

Die Nullauffüllung in Python wird in der Praxis in verschiedenen Situationen genutzt.

Nullauffüllung für Mitgliedsnummern oder Produktcodes

product_id = 42
formatted_code = f"{product_id:05}"
print(formatted_code)  # Ausgabe: 00042

Formatierung von Datums- und Zeitdaten

from datetime import datetime

now = datetime(2024, 3, 5, 7, 8)
formatted_date = now.strftime("%Y-%m-%d %H:%M")
print(formatted_date)  # Ausgabe: 2024-03-05 07:08

Maßnahmen gegen Fehler

num = 7
# print(num.zfill(3))  # Fehler tritt auf
print(str(num).zfill(3))  # Ausgabe: 007
print(f"{num:03}")  # Ausgabe: 007

6.3 Aus Sicht der Leistung

Beim Verarbeiten großer Datenmengen ergeben sich Leistungsunterschiede je nach Methode zur Nullauffüllung. Verarbeitungszeit für 100.000 Nullauffüllungen (kürzer ist schneller)

MethodeAusführungszeit
zfill()0.018 sec
format()0.016 sec
f-String0.012 sec (schnellste)

Für Nullauffüllung großer Datenmengen wird f-String empfohlenzfill() ist intuitiv nutzbar, aber in Bezug auf Leistung sind format() und f-String überlegen

6.4 Schlussfolgerung: Optimale Nullauffüllungsmethode je nach Situation

Bei der Nullauffüllung in Python ist es wichtig, die geeignete Methode je nach Verwendungszweck auszuwählen.

🔹Einfache Methode für Anfängerzfill()🔹Für Nullauffüllung von Zahlenformat() oder f-String
🔹Bei der Handhabung von vorzeichenbehafteten Zahlenzfill()🔹Für Auffüllung mit anderen Zeichen als Nullrjust()🔹Bei der Verarbeitung großer Datenmengen→ f-String (schnellste)

Mit diesem Artikel als Referenz nutzen Sie die Nullauffüllung in Python angemessen und richten das Datenformat effizient ein!