408 Stimmen

Wie kann ich den Wert einer Variablen in eine Zeichenkette einfügen?

Ich würde gerne eine int in eine string . Das ist es, was ich im Moment tue:

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 die Variable so einzufügen, funktioniert nicht:

plot.savefig('hanning', num, '.pdf')

Wie kann ich eine Variable in eine Python-Zeichenkette einfügen?

796voto

Dan McDougall Punkte 8187

Oh, die vielen, vielen Möglichkeiten...

String-Verkettung:

plot.savefig('hanning' + str(num) + '.pdf')

Konvertierungsspezifizierer:

plot.savefig('hanning%s.pdf' % num)

Verwendung lokaler Variablennamen:

plot.savefig('hanning%(num)s.pdf' % locals()) # Neat trick

Verwendung von str.format() :

plot.savefig('hanning{0}.pdf'.format(num)) # Note: This is the preferred way since 3.6

F-Saiten verwenden:

plot.savefig(f'hanning{num}.pdf') # added in Python 3.6

Dies ist der neue bevorzugte Weg:


Verwendung von string.Template :

plot.savefig(string.Template('hanning${num}.pdf').substitute(locals()))

209voto

joelostblom Punkte 33814

Con die Einführung von formatierten String-Literalen (kurz "f-strings") in Python 3.6 ist es nun möglich, diese mit einer kürzeren Syntax zu schreiben:

>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'

Mit dem in der Frage genannten Beispiel würde es wie folgt aussehen

plot.savefig(f'hanning{num}.pdf')

190voto

Amber Punkte 473552
plot.savefig('hanning(%d).pdf' % num)

En % Operator, wenn er einer Zeichenkette folgt, ermöglicht es Ihnen, Werte in diese Zeichenkette über Formatcodes einzufügen (die %d in diesem Fall). Weitere Einzelheiten finden Sie in der Python-Dokumentation:

https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting

20voto

goggin13 Punkte 7442

Ich bin mir nicht sicher, was der von Ihnen gepostete Code genau tut, aber um die im Titel gestellte Frage zu beantworten, können Sie + als normale String-Concat-Funktion und auch str() verwenden.

"hello " + str(10) + " world" = "hello 10 world"

Ich hoffe, das hilft!

7voto

Yehonatan Punkte 1132

Im Allgemeinen können Sie Zeichenketten mit erstellen:

stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X