Ich verstehe nicht, was %s
und %d
was und wie sie funktionieren.
python
string-formatting
karlzt
quelle
quelle
%s
bei Suchmaschinenkonfigurationen verwendet wird. Chrome%s
ersetzt in der Adressleiste eingegebene Keywords. Python verwendet%s
auf ähnliche Weise. Inprint('description: %s' % descrip)
dem%s
Bediener wird durch die Textzeichenfolge in der gespeicherten ersetzt werdendescrip
variabel. Die runden Klammern verhindern eine Fehlermeldung in Python 3.von Python 3 doc
%d
steht für Dezimalzahl%s
ist für generische Zeichenfolge oder Objekt und wird im Falle eines Objekts in Zeichenfolge konvertiertBetrachten Sie den folgenden Code
die Ausgabe wird sein
Wie Sie sehen können,
%d
wird auf Ganzzahl abgeschnitten,%s
die Formatierung beibehalten,%f
als float und gedruckt%g
für generische Zahlen verwendetoffensichtlich
generiert eine Ausnahme; Sie können keine Zeichenfolge in eine Zahl konvertieren
quelle
%s
stattdessen eine Zahl verwendet wird.%s
wird als Platzhalter für Zeichenfolgenwerte verwendet, die Sie in eine formatierte Zeichenfolge einfügen möchten.%d
wird als Platzhalter für numerische oder dezimale Werte verwendet.Zum Beispiel (für Python 3)
Würde ausgeben
quelle
Dies sind Platzhalter:
Beispielsweise:
'Hi %s I have %d donuts' %('Alice', 42)
Diese Codezeile ersetzt% s durch Alice (str) und% d durch 42.
Ausgabe:
'Hi Alice I have 42 donuts'
Dies könnte die meiste Zeit mit einem "+" erreicht werden. Um Ihre Frage besser zu verstehen, sollten Sie auch {} / .format () überprüfen. Hier ist ein Beispiel: Python-String-Formatierung:% vs. .format
Sehen Sie hier auch ein Google Python-Tutorial-Video @ 40 ', das einige Erklärungen enthält: https://www.youtube.com/watch?v=tKTZoB2Vjuk
quelle
Die Befehle
%d
und%s
Zeichenfolgenformatierung "Befehle" werden zum Formatieren von Zeichenfolgen verwendet. Das%d
ist für Zahlen und%s
ist für Zeichenfolgen.Zum Beispiel:
und
So übergeben Sie mehrere Argumente:
print("%s %s %s%d" % ("hi", "there", "user", 123456))
wird zurückkehrenhi there user123456
quelle
Dies sind alles informative Antworten, aber keine bringt den Unterschied zwischen
%s
und auf den Punkt%d
.%s
str()
Weist den Formatierer an, die Funktion für das Argument aufzurufen, und da wir per Definition zu einem String zwingen,%s
wird im Wesentlichen nur ausgeführtstr(arg)
.%d
Auf der anderen Seite wirdint()
das Argument vor dem Aufruf aufgerufenstr()
, wie z. B.str(int(arg))
Dies wird sowohlint
Zwang als auchstr
Zwang verursachen.Zum Beispiel kann ich einen Hex-Wert in eine Dezimalzahl konvertieren.
oder einen Schwimmer abschneiden.
Die Operation löst jedoch eine Ausnahme aus, wenn das Argument keine Zahl ist.
Wenn also nur angerufen werden soll
str(arg)
, dann%s
ist dies ausreichend. Wenn Sie jedoch zusätzliche Formatierungen (wie das Formatieren von Gleitkomma-Dezimalstellen) oder anderen Zwang benötigen, werden die anderen Formatsymbole benötigt.Mit der
f-string
Notation ist die Standardeinstellung, wenn Sie den Formatierer weglassenstr
.Das gleiche gilt für
string.format
; Der Standardwert iststr
.quelle
%d
und%s
sind Platzhalter, sie arbeiten als austauschbare Variable. Zum Beispiel, wenn Sie 2 Variablen erstellenSie können diese Variablen einem Satz in einer Zeichenfolge mithilfe eines Tupels der Variablen zuweisen.
Beachten Sie, dass dies
%s
für String und funktioniert%d
für numerische oder dezimale Variablen funktioniert.Wenn Sie drucken
variable_3
, würde es so aussehenIch habe in StackOverflow nach einer Antwort gesucht und mehr als 45 Antworten auf meine Frage gefunden.
quelle
Sie sind Formatspezifizierer. Sie werden verwendet, wenn Sie den Wert Ihrer Python-Ausdrücke in Zeichenfolgen einfügen möchten, wobei ein bestimmtes Format erzwungen wird.
Eine relativ detaillierte Einführung finden Sie unter Eintauchen in Python .
quelle
Nach den neuesten Standards sollte dies so erfolgen.
Überprüfen Sie die Python3.6-Dokumente und das Beispielprogramm
quelle
Wenn Sie% s oder% d vermeiden möchten, dann ..
Ausgabe:
quelle
%s
und%d
.print
ist der angezeigte Code in Python 3.5.1 ungültig: ist eine Funktion in Python 3, keine Anweisung.% s wird verwendet, um Platz für Zeichenfolge zu halten.% d wird verwendet, um Platz für Zahlen zu halten
Programmausgabe
In diesem Video geht es um diesen Tipp https://www.youtube.com/watch?v=4zN5YsuiqMA
quelle
Apropos ... Python3.6 wird mitgeliefert,
f-strings
was die Formatierung erheblich vereinfacht!Wenn Ihre Python-Version größer als 3.6 ist, können Sie Ihre Zeichenfolgen mit den folgenden Methoden formatieren:
quelle