[Python-es] Contar mayúsculas en un archivo

Rock Neurotiko miguelglafuente en gmail.com
Mie Abr 18 17:48:46 CEST 2012


Cierto, mucho más elegante :)

El 18 de abril de 2012 17:46, Asdrúbal Iván Suárez Rivera <
asdrubal.ivan.suarez.rivera en gmail.com> escribió:

>
>
> El 18 de abril de 2012 11:08, Rock Neurotiko <miguelglafuente en 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 <alito81 en gmail.com> escribió:
>>
>>> Hola a tod en 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 en 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 en 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 en 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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120418/cf4021f7/attachment.html>


Más información sobre la lista de distribución Python-es