Advertisement
Guest User

retoUno.py

a guest
Oct 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.68 KB | None | 0 0
  1. import random                                           # Modulo para usar numeros y funciones aleatorias
  2.  
  3. texto = input("Ingrese un texto: ")                     # Captura el texto por teclado
  4.  
  5. texto = texto.split(" ")                                # Separa el texto por espacios
  6. respuesta = []                                          # Lista para almacenar las palabras transformadas
  7.  
  8. for palabra in texto:                                   # Ciclo para recorrer palabra por palabra
  9.    
  10.     if(len(palabra) > 2):                               # Si la palabra tiene mas de dos caracteres
  11.        
  12.         primera = palabra[0]                            # Extrae la primara letra de la palabra
  13.         ultima = palabra[-1]                            # Extrae la ultima letra de la palabra
  14.        
  15.         medio = palabra[1:-1]                           # Extrae lo que queda en el medio
  16.         medio = list(medio)                             # Combierte el texto de en medio en una lista
  17.         copia = medio[:]                                # Crea una copia del texto del medio
  18.        
  19.         while(copia == medio):                          # Este ciclo trata de garantizat que la copia  logre ser diferente del medio original
  20.             random.shuffle(copia)                       # Desordena aleatoriamente el texto del medio
  21.            
  22.             contraste = copia[0]                        # Variable de contraste para evitar que el ciclo sea infinito si todas las letras son iguales
  23.             for letra in copia:                         # Recorre cada letra de la copia
  24.                 if contraste != letra:                  # Si encuentra una letra diferente
  25.                     contraste = None                    # El contraste se anula
  26.                     break                               # Sale del ciclo de prueba
  27.            
  28.             if(contraste != None):                      # Si el contraste no se ha anulado, implica que todas las letras son iguales
  29.                 break                                   # Rompe el ciclo while, pues es imposible que copia llegue a ser diferente de medio
  30.        
  31.         medio = "".join(copia)                          # Une las letras desordenadas de nuevo en una cadena de texto
  32.        
  33.         respuesta.append(primera+medio+ultima)          # Agrega la palabra procesada a la lista de respuestas
  34.        
  35.     else:
  36.         respuesta.append(palabra)                       # Agrega la palabra sin procesar a la lista de respuestas
  37.  
  38. respuesta = " ".join(respuesta)                         # Une las palabras de lista de respuestas mediante espacios
  39. print(">>", respuesta)                                  # Imprime la respuesta
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement