Eingabefunktion einer bereits definierten Variable

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
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten