2010-07-29 23 views
10

Jako wprowadza zmienną [i] do ciągu znaków w python.wstaw wartości zmiennych do łańcucha w pytonie

Na przykład spójrz na poniższy skrypt, chcę tylko móc nadać nazwę obrazowi, na przykład geo [0]. Tiff ... do geo [i]. tiff, lub jeśli używasz księgowego, ponieważ mogę zastąpić część łańcucha wartości, aby wygenerować licznik.

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

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

dzięki za odpowiedzi

Odpowiedz

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) 

wykonać operację formatowania napisów. Łańcuch, na który jest wywoływana ta metoda, może zawierać literalny tekst lub zmienne zastępcze za pomocą nawiasów klamrowych {}. Każde pole zastępcze zawiera indeks numeryczny argumentu pozycyjnego lub nazwę argumentu słowa kluczowego . Zwraca kopię ciągu, w którym każde zastępujące pole jest zastępowane wartością ciągu znaków odpowiedniego argumentu.

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

See Format String Składnia dla opisu różnych opcji formatowania które mogą być określone w formacie strun.

Ten sposób formatowania łańcuch jest nowy standard Pythonie 3.0, a powinny być korzystne w% formatowania opisanego w łańcuchu operacji formatowania z nowym kodem.

New in version 2.6. 
+0

Te dni to ".format" uważane za bardziej pythonic niż moje rozwiązanie? –

+0

Tak, jest oficjalnie zatwierdzony, a twoje rozwiązanie nie jest, iirc. Bez zarzutu :) –

+1

@orangeoctopus, Tylko dla Python2.6 + http://docs.python.org/library/stdtypes.html#str.format –

12

Można użyć operatora % wstrzyknąć ciągi do ciągów:

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

To da:

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

Można również zrobić liczb całkowitych z %d:

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

Można też to zrobić:

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

Właściwie to nie działa. Czy miałeś na myśli 'print (" to jest "+ nazwa)'? – Lisa

0

Zastosowanie

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

Zauważ, że var musi być ciągiem, jeśli tak nie jest, przekształcić go ciąg znaków z var = str(var).

Na przykład

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

Rozwiązanie to jest najłatwiejszy do odczytu/zrozumieć, więc lepiej dla początkujących, jak jest to tylko prosty ciąg konkatenacji.

Powiązane problemy