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
| Entrada | Salida |
|---|---|
"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 devuelvaTruesi una cadena es igual a su inversa