martes, 26 de septiembre de 2017

Palíndromos en una frase

Puede descargar el archivo: palindromos.py

Un palíndromo es una palabra capicúa, esto es, que se lee igual de izquierda a derecha que de derecha a izquierda. Por ejemplo, radar.

Vamos a crear un código en Python que detecta palíndromos en una frase y que luego los imprime en pantalla.

 #Detectar palindromos en una frase e imprimirlos  
 frase="El señor Uruburu contruyó un radar. Ana, que tiene buen ojo, le dijo que ni con todo el oro del mundo le haría funcionar porque no tenía rotor. Uruburu tardó en reconocer su error."   
 #Primero quitamos todos los puntos y comas. Dejamos solo letrs y espacios.  
 def limpia(texto):  
  limpio=''  
  for i in frase:  
   if i!="." and i!=",":  
    limpio+=i  
  return limpio  
 limpiado=limpia(frase)     
 #Creamos una lista con todas las palabras.  
 lista=limpiado.split()  
 #Función que detecta si una palabra es o no un palíndromo  
 def soyPalindromo(palabra):  
  palabra=palabra.lower()  
  soy=True #inicialmente suponemos que si es un palíndromo  
  n=len(palabra)  
  if n%2==0: #número par de letras en la palabra  
   for i in range(int(n/2)):  
    if palabra[i]!=palabra[n-i-1]:  
     soy=False  
  else: #número impar de letras  
   for i in range(int((n-1)/2)):  
    if palabra[i]!=palabra[n-i-1]:  
     soy=False  
  return soy  
 #Pasamos todas las palabras de la lista por la función que detecta si son palíndromos  
 #Si se trata de un palindromo lo imprime en pantalla  
 for palabrita in lista:  
  if soyPalindromo(palabrita):  
   print(palabrita)  


No hay comentarios:

Publicar un comentario