Seite 1 von 1
					
				Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 11:18
				von Duesselentchen
				Hello again liebe Forumsgemeide 
Zur Variablenzuweisung in Python habe ich eine Frage. Vorher habe ich mich versucht bei Google schlau zu machen, dort habe ich aber nur eher allgemeine Erklärungen zu den Datentypen erhalten. Sollte mir jemand einen Tipp für einen besseren Suchbegriff geben oder einen Link geben können wäre ich auch schon glücklich.
Nun aber ersteinmal zu meiner Frage:
Normalerweise fügt man Variablen so ein:
Code: Alles auswählen
variable1 = 5
variable2 = 2
variable3 = variable1 + variable2
okay, soweit logisch.
Nun habe ich aber auch schon öfters ein Prozentzeichen zum Einfügen gefunden:
(hier als Beispiel von der Seite 
http://docs.python.org/library/email-examples.html)
Warum kann ich die Variable direkt hinter dem String einfügen?
Was habe ich für Vorteile von dem %?
Wie/wann/wo wendet man es an?
Bislang habe ich nur gefolgert, dass das s hinter %s wohl für string stehen muss.
Ich hoffe mir kann jemand helfen.
Danke schonmal im Vorraus für evtl. Hilfen.
Gruß,
Duesselentchen
 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 11:31
				von sparrow
				
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 11:32
				von Pekh
				Das sind zwei Paar Schuhe: Oben hast du einfache Zuweisungen an Variablen, mit denen du anschließend rechnest (also ihren Inhalt abrufst). Beim unteren Beispiel handelt es sich um das (ggf. modifizierte) Einfügen von Variableninhalten in Strings (in der alten Form). Das dazugehörige Suchwort wäre "String formatting".
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 11:32
				von snafu
				Das Stichwort zum Suchen lautet "String Formatting". 

 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 12:18
				von Duesselentchen
				
 Danke für die Antworten - bin direkt mal dem Link gefolgt und habe mich somal über das String formatting schlau gemacht --> echt tolle Sache 
Nun noch zwei Fragen dazu:
1. @Pekh: was meinst du mit "in der alten Form"?
2. (Die Frage bezieht sich nun nur auf die Strings):
Also kann ich es zur Vereinfachung vom casten nehmen?
anstatt
oder gibt es da für Strings auch andere Vorteile?
Dankeschön 

 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 12:32
				von snafu
				Dies ist die neue Form, welche ab Python 3 ausschließlich genutzt wird. Ab Python 2.6. kann man sie parallel zur alten Form nutzen.
 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 13:05
				von BlackJack
				@snafu: Mooooment -- der ``%``-Operator funktioniert auch noch unter Python3:
Code: Alles auswählen
Python 3.1.2 (r312:79147, Sep 27 2010, 09:45:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> '%s welt' % 'hallo'
'hallo welt'
@Duesselentchen: Ich würde es nicht "casten" nennen und es ist halt doch ein wenig anders als die Konkatenation von Zeichenketten.  Die Platzhalter müssen ja nicht am Anfang oder am Ende der Zeichenkette stehen, sondern können mitten drin stehen.  Es wird je nach Platzhalter in `str`, `int`, `float`, oder `repr` umgewandelt und man kann zusätzlich noch zum Beispiel die Breite, Ausrichtung, Füllzeichen, oder Vor- und Nachkommastellen angeben.
 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 16:19
				von Duesselentchen
				@BlackJack: Okay, vielen Dank - ich meine es verstanden zu haben.
Diese neue Form ist mir noch nicht so ganz klar - da werde ich mich erst reinfinden müssen. Dennoch vielen Dank für den Hinweis, das es da was neues gibt. Dann werde ich, wenn ich drauf stoßen werde, nicht so überrascht sein 
Vielen Dank an alle Helfer!!!
 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 16:31
				von frabron
				Das ist eigentlich nicht weiter schwierig 
Code: Alles auswählen
# nach Position in der Funktion format()
>>> "{0} und {0} macht {1}".format("zwei", "vier")
'zwei und zwei macht vier'
>>>
# oder namensgebunden
>>> "{zwei} und {zwei} macht {vier}".format(vier="vier",zwei="zwei")
'zwei und zwei macht vier'
>>>
Das sind zumindest die Möglichkeiten, die ich immer nutze ...
Frank
 
			 
			
					
				Re: Variablenzuweisung
				Verfasst: Freitag 25. März 2011, 16:43
				von Duesselentchen
				
  Hey, cool - Danke!!!!
Diese zwei Möglichkeiten sind echt nicht schwierig, hattest recht! 
Gruß,
Duesselentchen