Seite 1 von 1

Eingabefunktion einer bereits definierten Variable

Verfasst: Donnerstag 21. August 2008, 09:33
von mathi
Hallo,
ich möchte gemäß unterem Beispiel eine Variable eingeben können, statt einen String.
Jetzt habe ich aber keine Ahnung wie das gehen könnte und wäre für anregungen froh. Das Ziel wäre, eine Variable "b" einzugeben und mit dem Wert weiterzurechnen:

Code: Alles auswählen

b=7
d=10
f=12
richtung= ask_funk_input(u'Richtung des aufliegenden Balkens [b/d]? [b]','b')
                        
A=richtung * f

# Ergebnis sollte dann 7*12=84  oder 10*12=120 sein

Code: Alles auswählen

# Funktion für die Eingabe von Strings mit Startwert                
def ask_raw_input(prompt,default): 
    vorgabe=default
    eingabe=raw_input(prompt)
    if not eingabe:
        return vorgabe
    else:
        return eingabe

Verfasst: Donnerstag 21. August 2008, 09:39
von Leonidas

Code: Alles auswählen

vars = {'b' : 7, 'd' : 10}
richtung = vars.get(raw_input(u'Richtung des aufliegenden Balkens [b/d]? [b]'), 'b')
print richtung

Verfasst: Donnerstag 21. August 2008, 09:49
von mathi
Super, danke das ging aber schnell!!
Vielen Dank an Leonidas

für alle nachlesenden:
so funktioniert es bei mir

Code: Alles auswählen

vars = {'b' : b, 'd' : d}
richtung = vars.get(ask_raw_input(u'Richtung des aufliegenden Balkens [b/d]? [b]', 'b'))
print richtung

Verfasst: Donnerstag 21. August 2008, 11:49
von Leonidas
Warum überhaupt ``d`` und ``b`` frei im Namespace rumhängen lassen? Wenn es Werte sind die in eine Kategorie gehören, ist es schlauer sie in einem Container zu haben. Denn so wie du es machst, kann man sich ``vars`` auch komplett sparen und dann gleich auf das Modul-Dictionary zugreifen.