2010-07-29 4 views
10

Wie führt eine Variable [i] in eine Zeichenfolge in Python ein.Einfügen von Variablenwerten in eine Zeichenfolge in Python

Betrachten Sie zum Beispiel das folgende Skript, ich möchte nur ein Bild benennen können, zum Beispiel geo [0]. Tiff ... zu geo [i]. Tiff, oder wenn Sie einen Buchhalter verwenden, wie ich einen Teil der Wertschöpfungskette ersetzen kann, um einen Zähler zu erzeugen.

data = self.cmd("r.out.gdal in=rdata out=geo.tif") 

    self.dataOutTIF.setValue("geo.tif") 

Dank für Ihre Antworten

Antwort

10
data = self.cmd("r.out.gdal in=rdata out=geo{0}.tif".format(i)) 
self.dataOutTIF.setValue("geo{0}.tif".format(i)) 
str.format(*args, **kwargs) 

einen String Formatierung Vorgang durchführen. Die Zeichenfolge, auf der diese Methode aufgerufen wird, kann Literal Textfelder oder Ersetzung Felder durch geschweifte Klammern {} enthalten. Jedes Ersetzungsfeld enthält entweder den numerischen Index eines Positionsarguments oder den Namen eines Schlüsselworts . Gibt eine Kopie von die Zeichenfolge zurück, in der jedes Ersatzfeld durch die Zeichenfolge des entsprechenden Arguments ersetzt wird.

>>> "The sum of 1 + 2 is {0}".format(1+2) 
'The sum of 1 + 2 is 3' 

Siehe Format-String-Syntax für eine Beschreibung der verschiedenen Formatierungs Optionen, die in Format-Strings angegeben werden können.

Diese Methode der String-Formatierung ist der neue Standard in Python 3.0 und soll auf das% bevorzugt werden Formatierung in String Formatierungsfunktionen in neuem Code beschrieben.

New in version 2.6. 
+0

In diesen Tagen wird '.format' als pythonischer als meine Lösung betrachtet? –

+0

Ja, es ist offiziell bestätigt, und Ihre Lösung ist nicht, iirc. Keine Schuld haftet :) –

+1

@orangeoctopus, Nur für Python2.6 + http://docs.python.org/library/stdtypes.html#str.format –

12

Sie den Operator % Strings in Strings zu injizieren verwenden können:

"first string is: STR1CONTENTS, second one is geo.tif" 

Sie können auch ganze Zahlen tun:

"first string is: %s, second one is: %s" % (str1, "geo.tif") 

Dies gibt mit %d:

"geo%d.tif" % 3 # geo3.tif 
-2

Sie können dies auch tun:

name = input("what is your name?") 
print("this is",+name) 
+3

Eigentlich funktioniert das nicht .. meinst du 'print (" das ist "+ name)'? – Lisa

0

Verwenden

var = input("Input the variable") 
print("Your variable is " + var) 

Beachten Sie, dass var ein String sein muss, wenn es nicht ist, wandelt es in eine Zeichenfolge mit var = str(var).

Zum Beispiel

var = 5 # This is an integer, not a string 
print("Var is " + str(var)) 

Diese Lösung ist die einfachste/verstehen zu lesen, so besser für Anfänger, da es nur einfache String-Verkettung ist.

Verwandte Themen