Tema: Curiosidad.
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2014, 16:44
sukoy
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 2 meses
Puntos: 18
Curiosidad.

Hace tiempo leí en algún lugar, que en una universidad del Reino Unido, se habia hecho
un estudio que afirmaba que no importa el orden de las letras en una palabra mientras
la primera y la última letras siguieran en sus lugares correctos. Parece que cuando leemos
un texto nos fijamos en las palabras como un todo y no leemos letra por letra.
Este programa toma como parámetro la ruta a un fichero y devuelve otro codificado
en estos términos.

Código Python:
Ver original
  1. """
  2. Created on Wed Apr  2 14:33:20 2014
  3.  
  4. @author: sukoy
  5. Licencia gnu/gpl
  6.  
  7. """
  8. #!/usr/bin/env python
  9.  
  10.  
  11. import sys
  12. import random
  13. import codecs
  14.  
  15. f = sys.argv[1]
  16.  
  17. with codecs.open(f, encoding='latin-1') as fix:
  18.     origin = fix.readlines()
  19.  
  20. def formatLine(line):
  21.     s = ''
  22.  
  23.  
  24.     for word in line.split(' '):
  25.         wf = '' # fin palabra
  26.         wr = '' # mitad
  27.         wp = '' # principio
  28.         point = ''
  29.         pointP = ''
  30.         w = ''
  31.  
  32.         word = word.rstrip()
  33.  
  34.         if all(i.isalpha() for i in word):
  35.             if len(word) > 3:
  36.                 wf = word[-1]
  37.                 wp = word[0]
  38.                 wr = word[1:-1]
  39.             else:
  40.                 w = word
  41.                 wr, wp, wf, point, pointP = '','','','',''
  42.  
  43.         elif not any(i.isalpha() for i in word):
  44.             w = word
  45.             wr, wp, wf, point, pointP = '','','','',''
  46.  
  47.         elif not word[-1].isalpha():
  48.             point = word[-1]
  49.             if len(word) > 3:
  50.                 if word[0].isalpha():
  51.                     wf = word[-2]
  52.                     wp = word[0]
  53.                     wr = word[1:-2]
  54.                 else:
  55.                     wf = word[-2]
  56.                     wp = word[1]
  57.                     wr = word[1:-2]
  58.                     pointP = word[0]
  59.             else:
  60.                 w = word
  61.                 wr, wp, wf, point, pointP = '','','','',''
  62.         else:
  63.             w = word
  64.             wr, wp, wf, point, pointP = '','','','',''
  65.  
  66.         if wr:
  67.             w = ''.join(random.sample(wr, len(wr)))
  68.         else:
  69.             w = word
  70.         fs =  pointP + wp + w + wf + point
  71.         s += fs + ' '
  72.     return s.rstrip()+ '\n'
  73.  
  74. with codecs.open('dest.txt', encoding='latin-1',  mode='w+') as dest:
  75.     final = []
  76.     for line in origin:
  77.         nv = formatLine(line)
  78.         final.append(nv)
  79.         dest.write(nv)

Código:
Hcae tpiemo leí en aglún luagr, que en una udvnireisad del Rneio Udnio, se haiba hceho
un ediusto que abamrfia que no itpomra el oerdn de las lerats en una pbaalra menatris
la perimra y la úilmta lretas sieruagin en sus laerugs ctoorercs. Pacree que cnuado lmeeos
un texto nos fjoaims en las praaabls cmoo un tdoo y no loeems lerta por ltera.
Etse pgmarora tmoa cmoo pátrmraeo la ruta a un friheco y dvevleue orto cafdioicdo
en etoss toérimns.
No estoy muy seguro
Saludos