Wie funktionieren „und“ und „oder“, wenn sie in einer Anweisung kombiniert werden?

Aus irgendeinem Grund hat mich diese Funktion verwirrt:

def protocol(port):
    return port == "443" and "https://" or "http://"

Kann jemand die Reihenfolge der Ereignisse hinter den Kulissen erklären, damit dies so funktioniert, wie es funktioniert.

Ich habe es so verstanden, bis ich es ausprobiert habe:

Entweder ein

def protocol(port):
    if port == "443":
        if bool("https://"):
            return True
    elif bool("http://"):
        return True
    return False

Oder B)

def protocol(port):
    if port == "443":
        return True + "https://"
    else:
        return True + "http://"

Ist dies ein Sonderfall in Python oder verstehe ich die Funktionsweise von Anweisungen völlig falsch?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage