Lösen Sie den ValueError: Feldname mit Nulllänge im Formatfehler in Python

Manav Narula 21 Juni 2023
Lösen Sie den ValueError: Feldname mit Nulllänge im Formatfehler in Python

Die Zeichenfolgenformatierung ist eine sehr gängige Praxis in Python, um die Darstellung der Zeichenfolge zu ändern, damit wir sie in unserem gewünschten Format anzeigen können. Python bietet eine Vielzahl von Methoden zur Formatierung von Zeichenfolgen. Einige sind die Funktion format(), F-Strings und mehr.

Die Funktion format() nimmt einen String und konvertiert ihn in unser gewünschtes Format. Es ist sehr einfach zu bedienen und funktioniert mit Python 2 und Python 3.

Die Funktion format() kann mit den geschweiften Klammern {} Ersetzungsfelder in einem String spezifizieren. Die Werte für dieses Ersetzungsfeld geben wir innerhalb der Funktion format() an.

In diesem Tutorial wird der Fehler ValueError: zero length field name in format in Python besprochen.

Beheben Sie den Fehler ValueError: Feldname mit Nulllänge im Format in Python

Dieser Fehler ist ein ValueError, d.h. im Funktionsparameter wurde ein ungültiger Wert des richtigen Datentyps angegeben. Stellen Sie sich vor, Sie liefern -16 als Wert in einer Quadratwurzelfunktion.

Obwohl der Werttyp ein Int ist, liefert er einen ValueError, da es sich um einen ungültigen Wert handelt.

Lassen Sie uns einen Beispielfall des Fehlers ValueError: zero length field name in format besprechen.

Siehe Code unten.

x, y = 4, 5
print "X ({}) < B ({})".format(x, y)

Ausgang:

ValueError: zero length field name in format

Dieser Fehler tritt nur in bestimmten Versionen von Python auf. Es wird in Python 2.6 oder niedriger oder in Python 3.0 (nicht in 3.1 und höher) angetroffen.

Dieser Fehler tritt in keiner anderen Version von Python auf.

Der Compiler gibt diesen Fehler aus, da wir in diesen angegebenen Versionen den Positionsargumentbezeichner für die Ersetzungsfelder bereitstellen müssen. Um diesen Fehler zu beheben, müssten wir die Indizes in die entsprechenden geschweiften Klammern einfügen.

Zum Beispiel,

x, y = 4, 5
print("X ({0}) < B ({1})".format(x, y))

Ausgang:

X (4) < B (5)

Die obige Lösung sollte den Fehler beheben.

Der Grund, warum andere Versionen von Python (2.7 und höher, außer 3.0) nicht auf diesen Fehler stoßen, ist, dass in diesen Versionen die Funktion format() die Positionsargumentbezeichner weglassen kann, was bedeutet, dass {}{} dies tun wird standardmäßig als {0}{1} verstanden werden.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Python Error