Python-Test, ob ein String einem bestimmten Wertesatz angehört

Ich lerne Python auf der Codecademy und meine aktuelle Aufgabe ist:

Schreiben Sie eine Funktion, shut_down, die einen Parameter akzeptiert (Sie können jeden beliebigen Parameter verwenden; in diesem Fall würden wir s für string verwenden). Die shut_down-Funktion sollte zurückkehren"Herunterfahren..." wenn es geht"Ja", "Ja", oder"JA" als Argument und"Herunterfahren abgebrochen!" wenn es geht"Nein", "Nein", oder"NEIN".

Wenn es etwas anderes als diese Eingaben bekommt, sollte die Funktion zurückkehren"Entschuldigung, ich habe dich nicht verstanden."

Schien mir einfach zu sein, aber irgendwie kann ich es immer noch nicht.

Meinen Code habe ich gemacht, um die Funktion zu testen:

def shut_down(s):
    if s == "Yes" or s == "yes" or s == "YES":
        return "Shutting down..."
    elif s == "No" or "no" or "NO":
        return "Shutdown aborted!"
    else:
        return "Sorry, I didn't understand you."

i = input("Do you want to shutdown?")
print(i) #was to test the input
print(shut_down(i)) #never returns "Sorry, I didn't understand you"

Es funktioniert gut für das Nein und Ja, aber irgendwie, wenn ich ein Leerzeichen vor ein Ja setze oder wenn ich nur "a" eintippe, druckt es "Herunterfahren abgebrochen!" obwohl es gedruckt werden sollte "Entschuldigung, ich habe dich nicht verstanden".

Was mache ich falsch?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage