Ejercicios de Lógica de Programación #2

Ejercicios

¡Hola a todos! Segundo post de esta serie sobre lógica de programación. Hoy, vamos a detectar palíndromos. Pero primero, ¿por qué es tan crucial dominar la lógica de programación?

Importancia de la Lógica de Programación:

La lógica de programación es la columna vertebral de cualquier lenguaje de programación. Comprender los conceptos fundamentales de la lógica de programación te da el poder de crear algoritmos eficientes y resolver problemas de manera efectiva. Ya sea que estés interesado en desarrollar aplicaciones web, inteligencia artificial, análisis de datos o cualquier otra área de la informática, una base sólida en lógica de programación es esencial. Ahora, veamos cómo Python puede ayudarnos a abordar el desafío de los palíndromos.

Código para Detectar Palíndromos:

Primero Definimos una función llamada “es_palindromo” que toma un argumento llamado “texto”

Python

def es_palindromo(texto):
    

Convertimos todo el texto a minúsculas para evitar problemas con mayúsculas y minúsculas.

Python

texto = texto.lower()
    

Usamos una comprensión de lista para eliminar caracteres no alfanuméricos y números

Python

texto = ''.join(c for c in texto if c.isalnum())
    

para entenderlo un poco mejor:

  • texto: Es una variable que almacena una cadena de texto. Puedes considerar que esta cadena contiene caracteres alfanuméricos (letras y dígitos) junto con otros caracteres, como símbolos de puntuación o espacios en blanco.
  •  for c in texto: Este es un bucle for que recorre cada carácter c en la cadena texto. En otras palabras, se está examinando cada carácter de la cadena uno por uno.
  • if c.isalnum( ): Esta es una condición que verifica si el carácter c es alfanumérico. La función isalnum( ) es un método de las cadenas en Python que devuelve True si el carácter es una letra (alfabética) o un dígito (numérico) y False en caso contrario.
  • ‘ ‘ .join(…): Esto es un método de cadena que toma los caracteres c que cumplieron la condición c.isalnum( ) (es decir, caracteres alfanuméricos) y los une en una nueva cadena. Los caracteres se concatenan sin ningún carácter separador.

Reemplaza las vocales acentuadas con sus equivalentes no acentuados.

Python

    texto = texto.translate
    (str.maketrans('áéíóúü', 'aeiouu'))
    

  •  str.maketrans(‘áéíóúü’, ‘aeiouu’): Esta parte crea una tabla de traducción que mapea los caracteres acentuados en la cadena de entrada (los caracteres en la primera cadena) a sus equivalentes no acentuados (los caracteres en la segunda cadena).
  • texto.translate(…): La función traslate( ) de la cadena toma una tabla de traducción y la aplica a la cadena. En este caso, la tabla de traducción creada con  str.maketrans se aplica a la variable texto, que es la cadena de entrada. Cada vez que encuentra un carácter en texto que coincide con uno de los caracteres acentuados en la tabla de traducción, lo reemplaza por su equivalente no acentuado según la tabla.

 

Ahora invertimos la cadena usando “slicing”.

Python

invertido = texto[::-1]
    

El “slicing” es una técnica en Python que se utiliza para acceder a partes específicas de una secuencia, como una cadena (string), una lista o una tupla. Aquí, el “slicing” se utiliza para invertir una cadena.

  • texto: Contiene la cadena original a invertir.
  • [: : -1]: Esto es la notación de “slicing”. En este contexto, [: : -1] se utiliza para crear una nueva cadena que es una versión invertida de la cadena original. El [: : -1] se traduce como “desde el principio hasta el final, con un paso de -1”. El paso negativo -1 invierte la dirección en la que se recorren los caracteres de la cadena, efectivamente invirtiendo la cadena.

Por lo tanto, después de ejecutar esta línea de código, la variable invertido contendrá una cadena que es una versión invertida de la cadena original almacenada en la variable texto. Por ejemplo, si texto fuera “hola”, la variable invertido contendría “aloh”. Esto se logra gracias a la técnica de “slicing” con un paso de -1.

Ahora comparamos la cadena invertida con la original y retornamos True si son iguales, lo que indica un palíndromo.

Python

return invertido == texto
    

Comprobando un Ejemplo:

Vamos a probar nuestra función con la siguiente cadena: “Dábale arroz a la zorra el abad”. ¿Es un palíndromo?

Python

resultado = es_palindromo
    ("Dábale arroz a la zorra el abad")

print("¿Es un palíndromo?", resultado)
    

El cual nos va a devolver este resultado:

Python

¿Es un palíndromo? True
    

Puedes ver el script completo en GitHub

Y si disfrutan del contenido, considerar hacer una donación me ayudará a seguir creando. También, ¡me encantaría conocer sus sugerencias! Dejen sus comentarios sobre temas que quieren que trate. ¡Gracias por su apoyo!

¡Suscríbete a nuestro newsletter para recibir noticias y artículos cada semana o mes!

¡Mantente al día con las últimas novedades en marketing, desarrollo web y análisis de datos!

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *