Как «и» и «или» работают, когда объединены в одном утверждении?

Почему-то эта функция меня смутила:

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

Может кто-нибудь объяснить порядок того, что происходит за кулисами, чтобы сделать эту работу такой, какая она есть.

Я понял это, пока не попробовал:

Либо А)

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

Или б)

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

Это какой-то особый случай в Python, или я совершенно не понимаю, как работают операторы?