[Python-es] Mayusculas y minusculas en una secuencia

Chema Cortes pych3m4 en gmail.com
Mar Mayo 24 04:12:03 EDT 2016


El mar., 24 may. 2016 a las 3:28, alito (<alito81 en gmail.com>) escribió:

> Hola a todos:
>
> Tengo un pequeño codigo que no se como hacer que sea iterativo, yo se
> que para ustedes es fácil pero para mi se me ha complicado un poco.
>
> Quiero convertir a mayusculas una region determinada de una secuencia.
> La region esta en la primera linea y la region de la secuencia que
> quiero cambiar esta en la segunda linea.
>
> Logro que lea la region y posteriormente cambie a mayusculas la region,
> pero cuando son varias regiones me da por separado las secuencias y no
> en la misma secuencia.
>
>
Cuesta entender lo que quieres si no aclaras mejor los términos que usas.

Cuando te refieres a "secuencias", mejor que digas "cadenas de caracteres"
o, directamente, "strings". Las "secuencias" suelen ser algo similar a
listas que se procesan de modo secuencial.

Por lo que se ve, en la primera línea tienes parejas de números que
delimitan las regiones que quieres cambiar, mientras que en la segunda
estaría la cadena a cambiar.



> Mi código esta asi:
>
>      for line in x:
>
>         inp = open("archivo", "r")
>
>          x = inp.readlines()
>          l1 = x[0].strip().split(",")
>          l2 = x[1].strip()
>          for j in range(1,len(l1)-1):
>              reg = l1[j].split("-")
>              reg1 = int(reg[0])
>              reg2 = int(reg[1])
>              c1 = l2[:(reg1-1)] + l2[(reg1-1):reg2].upper() + l2[(reg2):]
>              print str(reg1) + " - " + str(reg2)
>              print c1
>
>
Lo que no entiendo es qué era 'x' antes de entrar en el bucle for, que
luego cambias dentro del bucle. Algo está mal en este código.

Pero estudiando el código, guardas la línea a cambiar en 'l2' y usas 'c1'
como espacio temporal donde cambiar una región a mayúsculas. Si lo que
quieres es cambiar varias regiones, basta con que uses 'l2' en lugar de
'c1', de modo que en cada iteración se irán cambiando a mayúsculas cada una
de las regiones. Basta imprimir 'l2' al final del bucle.



> Este es un ejemplo de un archivo sin que se haya convertido a mayusculas:
>
> #region 1-15, 17-20, 30-45
>
>
> estaeslasecuenciaquemegustariaqueestuvieraenmayusculascadavezqueelprogramaencuentrelasregionesindicadas
>
>
> Este es un ejemplo de como me gustaria que quedara el archivo una vez
> que se corra el programa:
>
> #region 1-15, 17-20, 30-75
>
>
> ESTAESLASECUENcIAQUemegustarIAQUEESTUVIERAENMAYUSCULASCADAVEZQUEELPROGRAMAencuentrelasregionesindicadas
>
> Agradezco su ayuda
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160524/c301bd75/attachment.html>


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