Seite 1 von 1
Kurze und doofe Frage zu raw_input
Verfasst: Mittwoch 2. Dezember 2009, 15:33
von jimKnopf
Hallo Allerseit!
Ich möchte gerne in einem commandpromt bei einer Eingabe einen Standardwert der Variable mit ausgeben. Machen würde ich das gerne in etwa wie folgt:
Nun funktioniert das leider so nicht. blub hat auch einen voreingestellten wert, ist also immer definiert.
Geht das irgendwie in den Promt von raw_input den inhalt eine Variablen zu parsen, oder muss ich das erst ausgeben und dann eingabe anfordern?
Hoffe mein Problem versteht jemand.
Besten Dank und beste Grüße
Re: Kurze und doofe Frage zu raw_input
Verfasst: Mittwoch 2. Dezember 2009, 15:39
von Pekh
Verfasst: Mittwoch 2. Dezember 2009, 15:39
von Dav1d
Das %-Zeichen muss immer direkt hinter dem String sein!
Code: Alles auswählen
>>> x = 123
>>> raw_input('Neue Zahl, alte: %s ' % (x))
Neue Zahl, alte: 123 124
'124'
//Edit: grrrrr zu langsam!
Verfasst: Mittwoch 2. Dezember 2009, 15:59
von jimKnopf
*ankopfklatsch*
hmm, ja danke, manchmal is man blind
Verfasst: Mittwoch 2. Dezember 2009, 16:06
von Pekh
Oh ja. Irgendwann weiß man dann nicht mehr, ob man wahnsinnig wurde, weil man den Fehler zwei Tage lang gesucht hat, oder weil die Lösung so trivial war.

Verfasst: Mittwoch 2. Dezember 2009, 16:08
von /me
jimKnopf hat geschrieben:*ankopfklatsch*
hmm, ja danke, manchmal is man blind
Mit .format() wäre das nicht passiert ...
Verfasst: Mittwoch 2. Dezember 2009, 16:25
von cofi
@Dav1d: Die Klammern um das `x` sind überflüssig. Wenn du damit meintest, dass das immer ein Tupel sein sollte, dann müsste es `x,` heissen.
Verfasst: Mittwoch 2. Dezember 2009, 17:34
von Dav1d
cofi hat geschrieben:@Dav1d: Die Klammern um das `x` sind überflüssig. Wenn du damit meintest, dass das immer ein Tupel sein sollte, dann müsste es `x,` heissen.
Ich habs gleich so gemacht um spätere Fehler zu vermeiden
z.B.:
Code: Alles auswählen
>>> x = 'Erster Wert: %s, Zweiter Wert: %s' % 1, 2
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
x = 'Erster Wert: %s, Zweiter Wert: %s' % 1, 2
TypeError: not enough arguments for format string
>>> y = 'Erster Wert: %s, Zweiter Wert: %s' % (1, 2)
>>> y
'Erster Wert: 1, Zweiter Wert: 2'
und weil ich den Code lieber einheitlich habe, also überall Klammern drum, oder gleich mit .format() was mit Python 2.4 leider nicht geht
