Ejercicios y problemas comunes con palíndromos en Python
"Cada problema común que enfrentas es una oportunidad para convertir la confusión en claridad y la práctica en aprendizaje."
Aprender a trabajar con palíndromos en Python no solo es divertido, sino que también te ayuda a mejorar tus habilidades en manipulación de strings, bucles, funciones y algoritmos.
En esta sección encontrarás una colección de ejercicios prácticos y problemas comunes para que refuerces tus conocimientos.
Ejercicio 1: Verificar si una palabra es palíndromo
Enunciado:
Escribe un programa que pida una palabra al usuario y determine si es un palíndromo.
palabra = input("Ingresa una palabra: ")
if palabra == palabra[::-1]:
print("Es un palíndromo")
else:
print("No es un palíndromo")
Ejercicio 2: Palíndromos en una lista de palabras
Enunciado: Dada una lista de palabras, filtra únicamente las que sean palíndromos.
palabras = ["oso", "radar", "python", "civic", "reconocer"]
palindromos = [p for p in palabras if p == p[::-1]]
print("Palíndromos encontrados:", palindromos)
Salida:
Palíndromos encontrados: ['oso', 'radar', 'civic', 'reconocer']
Ejercicio 3: Palíndromos ignorando mayúsculas y acentos
Enunciado:
Mejora el programa para que no importe si la palabra está en mayúsculas o minúsculas, y además quite tildes antes de verificar.
import unicodedata
def normalizar(palabra):
palabra = palabra.lower()
palabra = ''.join(
c for c in unicodedata.normalize('NFD', palabra)
if unicodedata.category(c) != 'Mn'
)
return palabra
palabra = input("Ingresa una palabra: ")
palabra_norm = normalizar(palabra)
if palabra_norm == palabra_norm[::-1]:
print("Es un palíndromo")
else:
print("No es un palíndromo")
Ejercicio 4: Contar cuántos palíndromos hay en una lista
Enunciado: Dada una lista de palabras, muestra cuántas son palíndromos.
palabras = ["oso", "luz", "radar", "casa", "ana"]
cantidad = sum(1 for p in palabras if p == p[::-1])
print("Cantidad de palíndromos:", cantidad)
Salida:
Cantidad de palíndromos: 3
Problemas comunes al trabajar con palíndromos
-
Sensibilidad a mayúsculas y minúsculas
-
"Oso"
puede no detectarse como palíndromo si no se convierte a minúsculas. -
Espacios y signos de puntuación
-
Frases como
"anita lava la tina"
deben limpiarse antes de verificarse. -
Acentos y caracteres especiales
-
Palabras como
"reconocér"
pueden dar falsos negativos si no se eliminan las tildes. -
Velocidad en listas grandes
-
Usar comprensión de listas o funciones optimizadas es mejor que bucles innecesarios.
Retos adicionales
- Detectar palíndromos en frases completas, eliminando espacios y signos.
- Crear un programa recursivo para verificar palíndromos.
- Hacer un script que lea un archivo de texto y extraiga todas las palabras que sean palíndromos.
Practicar con ejercicios y problemas de palíndromos en Python te permitirá dominar mejor las cadenas, listas y algoritmos de verificación. Son una excelente base para desarrollar lógica de programación y preparar el camino hacia proyectos más avanzados.
También te puede interesar: