py_string_sculptor

Código comentado línea a línea y paso a paso:

Entregas: py_string_sculptor.py con string_sculptor(text). Rank 03 · nivel 5.

Qué pide (en palabras normales)

Subject (enunciado original)
Write a function that transforms a string by alternating the case of
alphabetic characters only.
Non-alphabetic characters remain unchanged and are NOT counted in the
alternation index.
The first alphabetic character should be lowercase, the second uppercase, etc.
Spaces reset the alternation (next alpha after a space is lowercase again).

Expected file: py_string_sculptor.py
Function signature:
def string_sculptor(text: str) -> str:

Examples:
string_sculptor("hello")
=> "hElLo"
string_sculptor("Hello World")
=> "hElLo wOrLd"
string_sculptor("abc123def")
=> "aBc123DeF"
string_sculptor("Python3.9!")
=> "pYtHoN3.9!"
string_sculptor("")
=> ""

Solución: un booleano

upper = False
for ch in text:
    if ch == " ":
        upper = False
        out += ch
    elif ch.isalpha():
        out += ch.upper() if upper else ch.lower()
        upper = not upper
    else:
        out += ch

No hace falta índice ni contador: solo "¿la próxima letra va en mayúscula?". Letra → aplico y cambio. Espacio → False. Otro → nada.

Trampas