Kurze und doofe Frage zu raw_input

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jimKnopf
User
Beiträge: 11
Registriert: Donnerstag 4. Dezember 2008, 08:52

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
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Falsche Klammerung:

Code: Alles auswählen

 blub = raw_input('Eingabe bitte [%s]: ' %blub)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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!
the more they change the more they stay the same
jimKnopf
User
Beiträge: 11
Registriert: Donnerstag 4. Dezember 2008, 08:52

*ankopfklatsch*

hmm, ja danke, manchmal is man blind
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

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:
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

jimKnopf hat geschrieben:*ankopfklatsch*

hmm, ja danke, manchmal is man blind
Mit .format() wäre das nicht passiert ...
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

@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.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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:
the more they change the more they stay the same
Antworten