Schlüsselwortargumente... Hilfe...

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
Madpuella
User
Beiträge: 11
Registriert: Freitag 28. November 2008, 22:05
Wohnort: Bochum
Kontaktdaten:

Dienstag 9. Dezember 2008, 20:47

Hallo.
Ich bin völlig überfordert mit einer Aufgabe, die mein Dozent gestellt hat. Leider ist die Aufgabe zu einem Thema, was wir noch nicht wirklich gemacht haben, und da ich blutige Anfängerin bin, komm ich nach stundenlangem Überlegen und ausprobieren nicht weiter :(
Ich habe die Lösung der Aufgabe, und muss rausfinden, wie ich dorthin gelange. Doch leider bin ich absolut überfordert und hoffe auf eure Hilfe... Ich poste einfach mal die Aufgabenstellung und wäre sehr sehr dankbar, wenn mir jemand auf die Sprünge helfen könnte, denn ich bin ich zu doof dafür, und find noch nichtmal nen Ansatz...
Also:
Implementieren Sie eine Funktion hello(), die eine Anrede (z.B. für einen Brief) generiert. Verwenden sie Schlüsselwortargumente, um genau die folgenden Ausgaben produzieren zu können:

>>> hello()
Hallo Herr Schneider
>>> hello(nachname="Meier",begr="offiz")
Sehr geehrter Herr Meier
>>> hello(gender="n",nachname="Christkind",begr="pers")
Liebes Christkind
>>> hello(nachname="Meier",gender="f",titel="Prof. Dr.")
Hallo Frau Prof. Dr. Meier
>>> hello(nachname="",begr="pers",vorname="Karl",anrede="")
Lieber Karl
>>> hello(titel="Dr.",begr="offiz")
Sehr geehrter Herr Dr. Carstensen
>>> hello(nachname="Meier",gender="f",begr="pers")
Liebe Frau Meier
>>>


So. Das ist die Aufgabe. Achso, ich hab übrigens gelesen, dass das Forum nicht dazu dienen soll, Hausaufgaben zu lösen, aber ich bin wirklich sehr verzweifelt, weiss nicht mehr, was ich noch tun soll und hoffe deshalb auf eure Hilfe.
Lieben Gruß
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Dienstag 9. Dezember 2008, 20:53

Madpuella hat geschrieben:So. Das ist die Aufgabe. Achso, ich hab übrigens gelesen, dass das Forum nicht dazu dienen soll, Hausaufgaben zu lösen, aber ich bin wirklich sehr verzweifelt, weiss nicht mehr, was ich noch tun soll und hoffe deshalb auf eure Hilfe.
Wo genau liegt denn dein Problem?
Weißt du, was Schlüsselwortparameter sind und wie sie funktionieren?
Wenn nein: Dann könntest du z.B. im Tutorial zunächst nachlesen.

Und: Zeig doch mal, was du schon gemacht hast (=Code). Dann lässt sich am besten erkennen, wo du etwas noch nicht verstanden hast.
Benutzeravatar
rudolfo.christ
User
Beiträge: 11
Registriert: Freitag 5. Dezember 2008, 18:47
Wohnort: Trier

Dienstag 9. Dezember 2008, 20:54

http://docs.python.org/tutorial/control ... -arguments

Wenn es für die Uni/FH/Schule ist solltest du es selbst probieren.

Selbsterarbeitetes bleibt länger (oder gar für immer) im Gedächtnis.
Madpuella
User
Beiträge: 11
Registriert: Freitag 28. November 2008, 22:05
Wohnort: Bochum
Kontaktdaten:

Dienstag 9. Dezember 2008, 21:08

Ich weiss leider überhaupt nicht, wie ich überhaupt anfangen soll.... Das, was in dem Link steht, hilft mir leider auch nicht weiter, aber danke trotzdem. Ich hab einfach das Denken, was man für Python und sowas braucht noch nicht. Deshalb steh ich immer ratlos vor den Aufgaben, und weiss nicht weiter. Dann versuch ich Schritt für Schritt nachzuvollziehen, was die Aufgaben überhaupt von mir wollen. Und kleinschrittig versuche ich dann, irgendwie etwas hinzukriegen. Aber ich scheiter leider immer. Das ist äußerst frustrierend. Selbst wenn die Dinge auf Chinesisch dort stehen würden, würd ich nicht weniger verstehen :(
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Dienstag 9. Dezember 2008, 22:21

Madpuella hat geschrieben:Ich weiss leider überhaupt nicht, wie ich überhaupt anfangen soll...
Ich weiß ja nicht, wie groß dein Wille zum Verstehen ist, aber mit Anstrengung wird es schon verbunden sein. Vielleicht hilft dir der folgende Code zu verstehen, wie man das Problem lösen könnte:

Code: Alles auswählen

def hello(begr="locker",gender="m",nachname="Schneider"):
    if begr == "locker":
        txt = "Hallo"
    elif begr == "offiz":
        txt = "Sehr geehrte"
    elif begr == "pers":
        txt = "Liebe"
    else:
        return False
    if txt != "Hallo":
        if gender == "m":
            txt += "r"
        elif gender == "n":
            txt += "s"
    txt += " "
    if nachname:
        if gender == "m":
            txt += "Herr "
        elif gender == "f":
            txt += "Frau "
    txt += nachname
    return txt
Nein, das ist nicht die fertig Lösung der Aufgabe, aber du kannst ja damit ein wenig experimentieren und dadurch hoffentlich verstehen. Dann sollte es dir möglich sein, die fehlenden Elemente noch zu ergänzen.

Der fortgeschrittenere Pythoniker würde es im übrigen eleganter, z.B. mit Hilfe von dictionarys lösen. Dann sähe der Code etwa so aus:

Code: Alles auswählen

def hello(begr="locker",gender="m",nachname="Schneider"):
    anrede = {"locker":"Hallo ","pers":"Liebe","offiz":"Sehr geehrte"}
    endung = {"f":" ","m":"r ","n":"s "}
    person = {"f":"Frau ","m":"Herr ","n":""}
    txt = anrede[begr]+endung[gender] if begr != "locker" else anrede[begr]
    return txt+person[gender]+nachname if nachname else txt
Madpuella
User
Beiträge: 11
Registriert: Freitag 28. November 2008, 22:05
Wohnort: Bochum
Kontaktdaten:

Dienstag 9. Dezember 2008, 22:35

Vielen Dank. Ich denke, dass mir das schon weiterhilft. Jedenfalls versteh ich das, da mir bekannte Dinge in deinem Vorschlag dort verwendet werden. Das kann ich dann auch nachvollziehen. Mich hatte das nur in der Aufgabenstellung irritiert, dass da Schlüsselwortargumente so betont werden. Deshalb war ich so ratlos.
Ganz vielen lieben Dank!
Antworten