Wie füge ich den Wert einer Variablen in eine Zeichenfolge ein?
Lesezeit: 3 Minuten
Gisch
Ich möchte eine setzen int in ein string. Das mache ich im Moment:
num = 40
plot.savefig('hanning40.pdf') #problem line
Ich muss das Programm für mehrere verschiedene Zahlen ausführen, also möchte ich eine Schleife machen. Aber das Einfügen der Variablen wie folgt funktioniert nicht:
plot.savefig('hanning', num, '.pdf')
Wie füge ich eine Variable in einen Python-String ein?
>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
Mit dem in der Frage angegebenen Beispiel würde es so aussehen
plot.savefig(f'hanning{num}.pdf')
Es scheint, dass F-Strings mit mehrzeiligen Strings kompatibel sind.
– Stevoisiak
30. Oktober 2017 um 20:23 Uhr
Bernstein
plot.savefig('hanning(%d).pdf' % num)
Das % -Operator, wenn Sie einer Zeichenfolge folgen, ermöglicht es Ihnen, Werte in diese Zeichenfolge über Formatcodes einzufügen (die %d in diesem Fall). Weitere Einzelheiten finden Sie in der Python-Dokumentation:
Notiere dass der % -Operator ist ab Python 3.1 veraltet. Der neue bevorzugte Weg ist die Verwendung von .format() Methode wie in besprochen PEP 3101 und in Dan McDougalls Antwort erwähnt.
– Chris Müller
16. Juli 2015 um 14:18 Uhr
Das % Operator ist nicht veraltet – es ist jetzt einfach nicht der bevorzugte Weg.
– Kaya3
13. September 2021 um 12:59 Uhr
goggin13
Sie können verwenden + als die normale String-Verkettungsfunktion sowie str().
"hello " + str(10) + " world" == "hello 10 world"
Yehonatan
Im Allgemeinen können Sie Zeichenfolgen erstellen mit:
Würde in der Zeichenfolge resultieren hanning123.pdf. Dies kann mit jedem Array erfolgen.
Raja
Ich brauchte eine erweiterte Version davon: Anstatt eine einzelne Zahl in eine Zeichenfolge einzubetten, musste ich eine Reihe von Dateinamen der Form „Datei1.pdf“, „Datei2.pdf“ usw. generieren. So geht es hat funktioniert:
['file' + str(i) + '.pdf' for i in range(1,4)]
Das Listenverständnis ist für die Frage von OP nicht relevant, und die von Ihnen verwendete Zeichenfolgenformatierungstechnik wird bereits in der obersten Antwort und der Antwort von goggin13 behandelt. Bitte posten Sie keine Antworten, die eine andere Frage beantworten, oder doppelte Lösungen. Siehe Antworten. In jedem Fall gibt es keinen Grund, manuell zu verwenden str(); Es ist viel einfacher, zum Beispiel F-Saiten zu verwenden: f'file{i}.pdf'
– wjandrea
24. Juli um 18:39 Uhr
10914600cookie-checkWie füge ich den Wert einer Variablen in eine Zeichenfolge ein?yes