Seite 1 von 1

Problem mit Aufgabe

Verfasst: Montag 24. Oktober 2005, 15:58
von Python 47
Habe folgendes Problem:

Aufgabe:formuliere diese Beispiele als Funktionen mit den Namen compare(x, y) und dispatch(choice). Um die zweite zu testen sind dann natürlich noch vier Funktionen functionA(), ... functionD() zu schreiben, die im einfachsten Fall vielleicht nur ausgeben, dass sie aufgerufen wurden.

Beispiele: http://www.rafb.net/paste/results/LkXaIS20.html

Mein Code: http://www.rafb.net/paste/results/xvyx5e57.html

Aber ich finde kein passendes Argument für meine Funktion.Wie könnte der Code verbessert aussehen?

P.S. Das erste Beispiel hab ich schon gelöst.

Verfasst: Montag 24. Oktober 2005, 16:04
von jens
Leg ein Dict an und werte es aus.

Verfasst: Montag 24. Oktober 2005, 16:14
von Gast
Sorry aber das kann ich noch nicht.Gibts noch ne andere Lösung?

Verfasst: Montag 24. Oktober 2005, 16:36
von Gast
Dann machs doch ganz einfach so:

Code: Alles auswählen

def functionA():
    """Funktion A"""
    print "Funktion functionA() wurde aufgerufen..."

def functionB():
    """Funktion B"""
    print "Funktion functionB() wurde aufgerufen..."

def functionC():
    """Funktion C"""
    print "Funktion functionC() wurde aufgerufen..."

def functionD():
    """Funktion D"""
    print "Funktion functionD() wurde aufgerufen..."

def choice(auswahl):
    """Ruft eine Funktion aufgrund der Auswahl auf"""
    if auswahl == 'A':
        functionA()
    elif auswahl == 'B':
        functionB()
    elif auswahl == 'C':
        functionC()
    elif auswahl == 'D':
        functionD()
    else:
        print "Falsche Auswahl..."

choice(raw_input("Bitte geben Sie Ihre Auswahl ein: ").upper())

Verfasst: Montag 24. Oktober 2005, 16:45
von Gast
aber das zeigt doch nur die Zahl an.Ich will aber das wenn ich eine zahl eingebe die dazugehörige funktion aufgerufen wird[/quote]

Verfasst: Montag 24. Oktober 2005, 16:49
von Gast
Anonymous hat geschrieben:aber das zeigt doch nur die Zahl an.Ich will aber das wenn ich eine zahl eingebe die dazugehörige funktion aufgerufen wird
Genau das passiert doch jetzt... Nur dass es sich bei der Eingabe nicht um Zahlen handelt, sondern um Buchstaben... Aber das ist ja nun wahrlich keine Schwierigkeit, dies entsprechend anzupassen!

Verfasst: Montag 24. Oktober 2005, 16:50
von jens
Ich meinte es ungefähr so:

Code: Alles auswählen

def functionA():
    """Funktion A"""
    print "Funktion functionA() wurde aufgerufen..."

def functionB():
    """Funktion B"""
    print "Funktion functionB() wurde aufgerufen..."

def functionC():
    """Funktion C"""
    print "Funktion functionC() wurde aufgerufen..."

def functionD():
    """Funktion D"""
    print "Funktion functionD() wurde aufgerufen..."

conf = {
    "A": functionA,
    "B": functionB,
    "C": functionC,
    "D": functionD
}

def choice(auswahl):
    """Ruft eine Funktion aufgrund der Auswahl auf"""
    try:
        conf[auswahl]()
    except KeyError:
        print "Falsche Auswahl..."

choice(raw_input("Bitte geben Sie Ihre Auswahl ein: ").upper())