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:

Code: Alles auswählen

 blub = raw_input('Eingabe bitte [%s]: ') %blub
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
Falsche Klammerung:

Code: Alles auswählen

 blub = raw_input('Eingabe bitte [%s]: ' %blub)

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. :lol:

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 :lol: