Ich würde gerne eine int
in eine setzen string
. Das mache ich gerade:
num = 40
plot.savefig('hanning40.pdf') #problem line
Ich muss das Programm für mehrere verschiedene Nummern ausführen, also möchte ich eine Schleife machen. Das Einfügen der Variablen wie folgt funktioniert jedoch nicht:
plot.savefig('hanning', num, '.pdf')
Wie füge ich eine Variable in eine Python-Zeichenfolge ein?
%
Operator ab Python 3.1 veraltet ist. Der neue bevorzugte Weg besteht darin, die.format()
in PEP 3101 beschriebene und in der Antwort von Dan McDougall erwähnte Methode zu verwenden .Oh, die vielen, vielen Möglichkeiten ...
String-Verkettung:
Konvertierungsspezifizierer:
Verwenden lokaler Variablennamen:
Verwenden von
str.format()
:Verwenden von F-Strings:
Verwenden von
string.Template
:quelle
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. Ich habe eine Antwort mit diesen Informationen hinzugefügt.Mit der Einführung formatierter String-Literale (kurz "f-Strings") in Python 3.6 ist es nun möglich, dies mit einer kürzeren Syntax zu schreiben:
Mit dem Beispiel in der Frage würde es so aussehen
quelle
Sie wissen nicht genau, was der gesamte von Ihnen gepostete Code bewirkt, aber um die im Titel gestellte Frage zu beantworten, können Sie + als normale String-Concat-Funktion sowie str () verwenden.
Hoffentlich hilft das!
quelle
+
vermieden werden, da es extrem teuer istIm Allgemeinen können Sie Zeichenfolgen erstellen mit:
quelle
Wenn Sie mehrere Werte in die Zeichenfolge einfügen möchten, können Sie diese verwenden
format
Würde zu der Zeichenfolge führen
hanning123.pdf
. Dies kann mit jedem Array erfolgen.quelle
Ich brauchte eine erweiterte Version davon: Anstatt eine einzelne Zahl in eine Zeichenfolge einzubetten, musste ich eine Reihe von Dateinamen der Form 'file1.pdf', 'file2.pdf' usw. generieren. So funktioniert es hat funktioniert:
quelle
Sie müssen nur die Zahl varriable mit in eine Zeichenfolge umwandeln
quelle