Cierto, mucho más elegante :) El 18 de abril de 2012 17:46, Asdrúbal Iván Suárez Rivera < asdrubal.ivan.suarez.riv...@gmail.com> escribió:
> > > El 18 de abril de 2012 11:08, Rock Neurotiko > <miguelglafue...@gmail.com>escribió: > > ¿Has pensado en algo mas sencillo? >> >> Por ejemplo, sabemos que las mayusculas tienen un rango en el codigo >> ascii, por lo tanto, solo tienes que recorrer el string con un for, y hacer: >> >> if (ord(string[i]) >= 65 and ord(string[i])<=90) or ord(string[i])==209: >> > > > De acuerdo contigo... Una manera, en mi opinión elegante sería crear una > función simple que sea algo así como > > def es_mayuscula(caracter): > return (ord(caracter>=65) and ord(caracter)<=90)) or ord(caracter)==209 > > y la llamas desde el programa principal mediante un for. > > >> >> >> string es la cadena, i es el numero que va recorriendola, y ord es una >> funcion para pasar de caracter a numero ascii. >> >> Compruebas que esté entre 65 y 90 (mayusculas) o que sea el 209, si >> quieres contar tambien con la 'Ñ' :) >> >> El 18 de abril de 2012 17:33, alito s <alit...@gmail.com> escribió: >> >>> Hola a tod@s: >>> Hoy vengo con un problema (seguramente para ustedes no es nada :D). >>> Estoy haciendo un contador de mayúsculas. El archivo tiene mayúsculas y >>> minúsculas. Al final quiero que me diga cuantas mayúsculas hay y cuáles son >>> las más abundantes. Esto último ya lo conseguí. Mi problema real, radica en >>> que la búsqueda de las mayúsculas solo me lo hace en la primera sección del >>> archivo. Es decir, tengo algo como lo siguiente: >>> >>> >>> mrlplllvfasvipgavllldtRQFLIYNEDHKRCVDAVSPSAVQTAACNQDAESQKFRWVSesqimsvafklcLGVPSKTDwvaitlyacDSKSEFQKWECKNDTaa >>> >>> Bueno mi script solo me busca: RQFLIYNEDHKRCVDAVSPSAVQTAACNQDAESQKFRWVS >>> y ya no busca LGVPSKTD ni DSKSEFQKWECKNDT. >>> >>> El script es el siguiente: >>> >>> for line in myfile: >>> findWords1 = re.compile(r"\n[A-Z]+", re.MULTILINE) >>> for match in findWords1.finditer(myfile): >>> words = match.group() sequence = (collections.Counter(words)) >>> for x, count in sequence.most_common(10000): >>> print "No. total:" + '%s: %1d' % (x, count) >>> >>> Un punto importante es que la búsqueda la realiza siempre y cuando >>> encuentre un salto de línea antes. >>> Saludos. >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Miguel García Lafuente - Rock Neurotiko >> Vocal de la Junta Directiva Nacional del Partido Pirata. >> Coordinador de Jóvenes Piratas en Madrid. >> >> "Libertad en lugar de miedo." - "Información libre, sociedad libre." >> >> El contenido de este e-mail es privado, no se permite la revelacion del >> contenido de este e-mail a gente ajena a él. >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Asdrúbal Iván Suárez Rivera > > *El éxito de alguien que enseña no es que sepa mucho, sino que lo poco > que sabe lo sepa hacer llegar.* > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Miguel García Lafuente - Rock Neurotiko Vocal de la Junta Directiva Nacional del Partido Pirata. Coordinador de Jóvenes Piratas en Madrid. "Libertad en lugar de miedo." - "Información libre, sociedad libre." El contenido de este e-mail es privado, no se permite la revelacion del contenido de este e-mail a gente ajena a él.
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/