getNote Funktion

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
ok20
User
Beiträge: 4
Registriert: Dienstag 22. Dezember 2015, 13:33

Hallo zusammen,

hatte an euch eine Frage bzgl. der getNote Funktion.
Implementieren Se eine Funktion getNote, die als Ergebnis die Note der übergebenen Punkte zurückliefert. Das Ergebnis None signlisiert, dass die übergebenen Punkte keine gültige Punktzahl darstellen.

Meine Aufgabenstellung besteht darin den jeweiligen Punkten die entsprechenden Noten zuzuteilen. Soweit sogut. Jedoch komme ich am Ende mit dem None Teil nicht zurecht. Wäre über jeder Hilfe dankbar.

PS: soweit bin ich jetzt

Code: Alles auswählen

def getNote(note):

    if note >= 108 and note <= 120:
        return(1)
    elif note>=90 and note <=107:
        return(2)
    elif note >= 72 and note <= 89:
        return(3)
    elif note >= 60 and note <= 71:
        return(4)
    else:
        return(5)


if getNote(note = int(input("Geben Sie die Punktzahl an"))) == True:
    print(True)
else:
    print(None)
Zuletzt geändert von Anonymous am Dienstag 22. Dezember 2015, 13:43, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@ok20: `getNote()` gibt nirgendwo `True` zurück, also macht es keinen Sinn den Rückgabewert damit zu vergleichen.

`getNote()` gibt auch nirgendwo `None` zurück. Was wäre denn eine nicht-gültige Punktezahl? Darauf musst Du halt auch prüfen. Oder auf alle gültigen und dann am Ende im letzten ``else`` dann `None` zurück geben wenn in allen vorherigen Bedingungen die gültigen Punktezahlen abgeprüft wurden.

Da die Bedingung der Reihe nach überprüft werden brauchst Du nicht bei jedem Zweig beide Grenzen prüfen wenn Du es richtig machst weil sich eine Teilbedingung dann zwangsläufig aus der vorherigen Prüfung ergibt.

``return`` ist übrigens keine Funktion, also sollte man da auch nicht so schreiben als wäre es eine. Zwischen das Schlüsselwort und den Ausdruck für den Rückgabewert gehört ein Leerzeichen und die sinnlosen Klammern um den Ausdruck solltest Du weglassen.
Antworten