Ejercicio 02 — Di si una palabra es palíndromo ignorando mayúsculas/minúsculas

Dificultad: verde · Módulo 06 (Cadenas)

Enunciado

Di si una palabra es palíndromo ignorando mayúsculas/minúsculas

Cómo se resuelve

Detectar un palíndromo combina dos ideas de cadenas: normalizar antes de comparar y darle la vuelta con slicing.

  1. normal = palabra.lower() — pasamos todo a minúsculas para que “Anita” y “anita” se traten igual. .lower() devuelve una cadena nueva (la original no cambia, porque str es inmutable); por eso guardamos el resultado en normal.
  2. normal == normal[::-1] — una palabra es palíndromo si es idéntica a sí misma invertida. normal[::-1] genera la versión al revés con slicing de paso -1, y == compara las dos cadenas carácter a carácter.
  3. Según el resultado del if, imprimimos el mensaje. Fíjate en que en el print mostramos palabra (la original, con sus mayúsculas), no normal: la normalización era solo para comparar, no para mostrar.

Trampa habitual: comparar directamente palabra == palabra[::-1] sin bajar a minúsculas. Entonces “Anita” fallaría, porque la ‘A’ inicial en mayúscula no coincide con la ‘a’ final. Normaliza siempre antes de comparar.

Para practicar — cópialo y complétalo

Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.

# Curso de Python — Modulo 06: Cadenas: transformar y formatear
# Ejercicio 02 — PRACTICA (rellena los TODO)
# Enunciado: Di si una palabra es palíndromo ignorando mayúsculas/minúsculas
# Dificultad: verde
# Ejecutar: python3 ej02_practica.py
 
palabra = input("Introduce una palabra: ")
 
# TODO: pasa la palabra a minusculas con .lower() para normalizar el caso
normal = ""
 
# TODO: una palabra es palindromo si es igual a si misma invertida (normal[::-1])
#       imprime "<palabra> ES palindromo" o "<palabra> NO es palindromo"
if True:  # reemplaza por la comparacion normal == normal[::-1]
    print()
else:
    print()

Solución — cópiala y ejecútala

# Curso de Python — Modulo 06: Cadenas: transformar y formatear
# Ejercicio 02 — MODELO (resuelto)
# Enunciado: Di si una palabra es palíndromo ignorando mayúsculas/minúsculas
# Dificultad: verde
# Ejecutar: python3 ej02_modelo.py
 
palabra = input("Introduce una palabra: ")
 
# Normalizamos a minusculas para que 'Anita' y 'anita' se comparen igual
normal = palabra.lower()
 
# Una palabra es palindromo si es igual a si misma invertida ([::-1])
if normal == normal[::-1]:
    print(f"{palabra} ES palindromo")
else:
    print(f"{palabra} NO es palindromo")

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones