Python: ¿Saliendo por loop?

Investigué un poco sobre SO y soy consciente de que se han hecho muchas preguntas similares, pero no pude obtener mi respuesta. De todos modos, estoy tratando de construir una biblioteca para "encriptar" una cadena con la técnica del "número de Cesar", lo que significa que tengo que tomar la cadena y reemplazar cada letra con otra letra X en el alfabeto (espero que tenga sentido) . Aquí está mi código:

from string import ascii_lowercase, ascii_uppercase

def creer_encodeur_cesar(distance):

    retour = lambda x: encodeur_cesar(x, distance)
    return retour

def encodeur_cesar(string, distance):
    tabLowerCase = list(ascii_lowercase)
    tabUpperCase = list(ascii_uppercase)
    tabString = list(string)

    l_encodedStr = []

    for char in tabString:
        position = 0
        if char == " ":
            pass
        elif char.isupper():
            #do something

        elif char.islower():
            for ctl in range(0, len(tabLowerCase)):
                position = ctl
                if char == tabLowerCase[ctl]:
                    if (ctl + distance) > 26:
                        position = ctl + distance - 25
                    char = tabLowerCase[position + distance]
                    l_encodedStr.append(char)
                    #How to break out of here??


        encodedStr = str(l_encodedStr)

        return encodedStr

encodeur5 = creer_encodeur_cesar(5)
print(encodeur5("lionel"))

Entonces, en mi segunda declaración elif, quiero romper una vez que he encontrado y cifrado con éxito un carácter en lugar de recorrer todo el alfabeto. He intentado usarbreak pero salió del bucle principal para. No es lo que quiero. Vi que podía usartry exceptyraise pero no sé cómo podría hacer eso y ¿es una buena idea?

¿Cuál es la mejor manera de hacer esto? ¿Cuáles son las buenas prácticas en este caso?

Cualquier ayuda sería apreciada y gracias de antemano!