Saltar al contenido principal
Principiante strings slicing

Invertir una Cadena

Invierte el orden de los caracteres de un string en Python. Aprende el slicing con paso negativo, una de las técnicas más pythonicas del lenguaje.

slicing [::-1] bucles join()

El problema

Crea una función invertir que reciba una cadena de texto y devuelva la misma cadena con los caracteres en orden inverso.

Ejemplos

EntradaSalida
"Python""nohtyP"
"Hola Mundo""odnuM aloH"
"racecar""racecar"
""""

El último ejemplo es un palíndromo: se lee igual al derecho y al revés.

Código inicial

def invertir(texto):
    # Tu código aquí
    pass


# Prueba tu función
print(invertir("Python"))     # nohtyP
print(invertir("Hola Mundo")) # odnuM aloH
print(invertir("racecar"))    # racecar
print(invertir(""))           # (cadena vacía)

El slicing en Python

Los strings en Python se pueden “rebanar” con la sintaxis [inicio:fin:paso]:

texto = "Python"
texto[0:3]    # "Pyt"   (índices 0, 1, 2)
texto[::2]    # "Pto"   (cada 2 caracteres)
texto[::-1]   # "nohtyP" (paso -1 = al revés)

Con paso -1 Python recorre la cadena de derecha a izquierda. No hay índices de inicio/fin porque queremos la cadena completa.

Solución alternativa con bucle

Si aún no te sientes cómodo con slicing, esta solución equivalente te ayuda a entender el proceso paso a paso:

def invertir_con_bucle(texto):
    resultado = ""
    for caracter in texto:
        resultado = caracter + resultado  # cada letra va al principio
    return resultado

O usando reversed() y join():

def invertir_con_join(texto):
    return "".join(reversed(texto))

Las tres opciones son correctas. En Python real, preferirás [::-1].

Próximos pasos

  • Modifica la función para invertir solo las palabras (no los caracteres): "Hola Mundo""Mundo Hola"
  • Crea una función es_palindromo(texto) que devuelva True si una cadena es igual a su inversa