Python Nicht alle Argumente, die während der String -Formatierung konvertiert wurden

Python Nicht alle Argumente, die während der String -Formatierung konvertiert wurden

String -Formatierung ist die Technik, eine Zeichenfolge zu erstellen/zu erstellen, indem Platzhalter in einer Zeichenfolge durch Werte ersetzt werden. Bei der Durchführung von Operationen auf Saiten treten in Python verschiedene Fehler auf. Die Fehlermeldung “Nicht alle Argumente, die während der String -Formatierung konvertiert wurden”Erscheint beim Versuch, die angegebenen Zeichenfolgen mit der unangemessenen Syntax oder mit dem Modulo -Operator zu formatieren%”Mit Saiten und Zahlen.

In diesem Python -Blog werden wir verschiedene Ursachen und Lösungen für den angegebenen angegebenen Fehler untersuchen. Beginnen wir mit dem folgenden Inhalt:

    • Was sind die Ursachen für diesen Fehler??
    • Lösungen zur Behebung dieses Fehlers

Was sind die Ursachen des Fehlers "Nicht alle Argumente, die während der String -Formatierung konvertiert werden" Fehler?

Der diskutierte Fehler kann aus mehreren Gründen auftreten, einschließlich der folgenden:

Ursache 1: Verwenden einer falschen Syntax

Dieser Fehler kann auftreten, wenn die falsche Syntax des Modulo -Operators “%”Wird zum Aufrufen und Anhängen der initialisierten Werte verwendet. Schauen wir uns das folgende Beispiel an:

Name = "Joseph"
Alter = 23
output = "Mein Name ist und ich bin Jahre alt"%(Name, Alter)
Druck (Ausgabe)


Im obigen Code die falsche Syntax des Modulo -Operators “%"Wird verwendet, um den Wert von" zu platzieren "Name" Und "Alter”In der Zeichenfolge, ohne die entsprechenden Platzhalter zu verwenden, ich.e., “%S" Und "%D" usw. gegen die Datentypen.

Ausgang


Infolge.

Ursache 2: Verwenden Sie den Modulo -Operator „%“ mit Ganzzahl und String

Die andere Ursache dieses Fehlers kann durch die Verwendung des besprochenen Operators mit Ganzzahl und String erfolgen. Schauen wir uns beispielsweise den folgenden Beispielcode an:

name = "45"
Alter = 23
Ausgabe = Name % Alter
Druck (Ausgabe)


Im obigen Code -Snippet der Modulo -Operator “%"Wird zwischen der String -Variable platziert"Name"Und ganzzahlige Variable"AlterUm den entsprechenden Rest zurückzugeben.

Ausgang


Da beide Werte widersprüchliche Datentypen umfassen, kann die Berechnung nicht durchgeführt werden, sodass der angegebene Fehler ausgesetzt ist.

Lösungen zur Behebung des Fehlers „Nicht alle Argumente, die während der String -Formatierung konvertiert werden“

Im Folgenden finden Sie einige Lösungen, um die angegebene Einschränkung in Python zu beheben:

Lösung 1: Korrigieren Sie die Syntax, indem Sie die entsprechenden Platzhalter platzieren

Um diesen Fehler zu beheben, müssen wir die initialisierenden Zeichenfolgewerte aufrufen, indem wir den entsprechenden Platzhalter platzieren, i.e., “%S", folgendermaßen:

name = "John"
Alter = "30"
output = "Mein Name ist %s und ich bin %s Jahre alt" %(Name, Alter)
Druck (Ausgabe)


Im obigen Code der Platzhalter “%S"Wird anstelle der lockigen Klammern verwendet"Um die initialisierten Zeichenfolgewerte angemessen aufzurufen.

Ausgang


Wie zu sehen sind, werden auf die initialisierten Zeichenfolgewerte zugegriffen und entsprechend angehängt.

Lösung 2: Verwenden der Methode „format ()“

Der "Format()”Methodenformat des angegebenen/angegebenen Wertes gemäß dem Formatspezifizierer. Diese Methode kann auch verwendet werden, um die aufgerufenen Werte direkt zu formatieren, ohne die Platzhalter zu verwenden.

Syntax

Format (Val, Format)


In der obigen Syntax:

    • valEntspricht dem Wert, der formatiert werden muss.
    • Format”Bezieht sich auf die Spezifikation, wie der Wert formatiert werden sollte.

Beispiel

Überlegen wir den folgenden Code:

name = "John"
Alter = "30"
output = "Mein Name ist und ich bin Jahre alt".Format (Name, Alter)
Druck (Ausgabe)


Im obigen Codeblock die “Format()Die Methode wird verwendet, um die aufgerufenen Stringwerte als Argumente zu enthalten, wodurch die Werte angemessen zurückgegeben und angehängt werden.

Ausgang


Diese Ausgabe impliziert, dass die Zeichenfolgewerte angemessen abgerufen werden.

Lösung 3: Gießen Sie den Datentypen

Der Fehler kann auch durch Konvertieren der “aufgelöst werdenSaite" Zu "int Datentyp über Casting wie folgt:

name = "45"
Alter = 23
Ausgabe = int (Name) % Alter
Druck (Ausgabe)


Im obigen Code wird der initialisierte Zeichenfolgenwert auf “gegossen“int"Und dann der Modulo -Operator"%Wird zwischen dem Standard und der gegossenen Ganzzahl angewendet, um den entsprechenden Rest abzurufen.

Ausgang


Wie gesehen wird der Rest entsprechend abgerufen.e., 45/23 = “22”.

Abschluss

Der "Nicht alle Argumente, die während der String -Formatierung konvertiert wurden"Fehler kann behoben werden, indem die Syntax des Modulo -Operators korrigiert wird."%”Durch die Platzierung geeigneter Platzhalter oder die Verwendung der“Format()Methode anstelle des % Operator oder konvertieren die “Saite" hinein "int”Durch das Gießen des Datentyps. In diesem Python -Leitfaden wurde mehrere Gründe und Lösungen erörtert, um die diskutierte Begrenzung zu lösen.