class: center, middle, inverse, title-slide # 2. Strings ### Ana BVA ### 25/3/2021 --- <style type="text/css"> /* From https://github.com/yihui/xaringan/issues/147 */ .scroll-output { height: 80%; overflow-y: scroll; } /* https://stackoverflow.com/questions/50919104/horizontally-scrollable-output-on-xaringan-slides */ pre { max-width: 100%; overflow-x: scroll; } </style> # Strings Cadena de caracteres: objeto de una serie de signos o caracteres. ```python mensaje = "Hola Mundo" print(mensaje) ``` ``` ## Hola Mundo ``` --- ## Operadores de cadenas de caracteres Los *operadores de cadenas de caracteres* ayudan a manipular los strings .full-width[.content-box-red[+, -, *, / , =]] --- ### Concatenar (+) Se pueden juntar strings utilizando el operador de suma `+`. ```python saludo = "Buenos días" ``` -- ```python nombre = "Andrea" ``` -- ```python print(saludo + ' ' + nombre) ``` ``` ## Buenos días Andrea ``` --- ## Multiplicar (*) Se puede duplicar un string con el caracter de multiplicación `*`. -- ```python print("#" * 10) ``` ``` ## ########## ``` -- ```python print("Hola " * 3 + "mundo") ``` ``` ## Hola Hola Hola mundo ``` --- ## Añadir Puedes agregar más strings al final del último caracter con `+=`. -- ```python saludo2 = 'Hola' saludo2 += ' ' saludo2 += 'Mundo' print(saludo2) ``` ``` ## Hola Mundo ``` --- Podemos hacerlo con variables de tipo string ```python print(saludo) ``` ``` ## Buenos días ``` ```python print(nombre) ``` ``` ## Andrea ``` -- ```python mensaje = saludo + ' ' + nombre mensaje += '!' print(mensaje) ``` ``` ## Buenos días Andrea! ``` --- ## Métodos Un método es una función que «pertenece a» un objeto. -- Para ver la información completa de los métodos que se pueden ocupar en un string consulta la [página oficial de python](https://docs.python.org/2/library/stdtypes.html#string-methods). --- ### Longitud del string Puedes saber la longitud de un string ```python mensaje ``` ``` ## 'Buenos días Andrea!' ``` ```python print(len(mensaje)) ``` ``` ## 19 ``` --- ### Buscar Puedes buscar dentro de un string ```python print(mensaje) ``` ``` ## Buenos días Andrea! ``` ```python print(mensaje.find("Andrea")) ``` ``` ## 12 ``` -- ```python print(mensaje.find("Kevin")) ``` ``` ## -1 ``` --- ## Ejercicio .content-box-blue[ ¿Dónde empieza el codón inical `AUG` en la secuencia `dna = 'AAGGTACGTCGCGCGTTATTAGCCTAAT'`? ] - Escribe un programa que te regrese la posición del codón inicial - Output: un mensaje y el resultado -- ``` ## El codon TAC empieza en la posicion: 4 ``` --- ### Minúsculas/Mayusculas Puedes convertir todo a minúsculas o mayúsculas. ```python print(mensaje) ``` ``` ## Buenos días Andrea! ``` ```python print(mensaje.lower()) ``` ``` ## buenos días andrea! ``` -- ```python print(mensaje.upper()) ``` ``` ## BUENOS DÍAS ANDREA! ``` --- ### Remplazar Se pueden replazar los caracteres usando `replace` ```python print(mensaje) ``` ``` ## Buenos días Andrea! ``` ```python print(mensaje.replace('días','noches')) ``` ``` ## Buenos noches Andrea! ``` --- ### Cortar Se pueden elegir partes del string ```python print(mensaje) ``` ``` ## Buenos días Andrea! ``` ```python print(mensaje[1:5]) ``` ``` ## ueno ``` --- ### Posición en python <img src="https://i.stack.imgur.com/BWTW0.png" width="500px" style="display: block; margin: auto;" /> ```python saludo3 = "Hello" print(saludo3[0]) ``` ``` ## H ``` ```python print(saludo3[-5]) ``` ``` ## H ``` --- ## Ejercicio de Rosalind .content-box-blue[ Hacer el ejercico de [Rosalind: Strings and lists](http://rosalind.info/problems/ini3/) ] --- ## Ejercicio .content-box-blue[ ¿Dónde empieza el codón inical `AUG` en la secuencia `dna = 'AAGGTACGTCGCGCGTTATTAGCCTAAT'`? ] - Escribe un programa que te regrese la posición del codón inicial - Output: un mensaje y el resultado -- .content-box-blue[ ¿Cuál es la secuencia que se transcribe? ] - Output: donde empieza el codón inicial `AUG` y la secuencia que se transcribe (asumiendo codon de paro `UAA`) --- Resultado del ejercicio ``` ## El codon TAC empieza en la posicion 4 y termina en 24 ``` ``` ## ## Fragmento que será RNA (codón inicio: TAC, codón de paro =TAA) es: ## TACGTCGCGCGTTATTAGCC ``` --- ### Secuencias de escape Para incluir comillas en nuestros mensajes podemos usar `\` ```python print('El programa imprime \"Hola Mundo\"') ``` ``` ## El programa imprime "Hola Mundo" ``` -- Para incluir una nueva linea puedes ocupar `\n` ```python print('Buenos días \nBuenas noches') ``` ``` ## Buenos días ## Buenas noches ``` --- ### Variable + string Incluir una variable dentro de un string puedes usar `f` al inicio y `{}` ```python print(f'\nFragmento de RNA inicia por {met_ini}: \n{exon}') ``` ``` ## ## Fragmento de RNA inicia por TAC: ## TACGTCGCGCGTTATTAGCC ``` --- ### Contar Podemos contar caracteres usando `count` ```python print(saludo3) ``` ``` ## Hello ``` ```python print(saludo3.count('l')) ``` ``` ## 2 ``` --- ### Variable + numero ¿Qué pasa con los números? ```python print('La longitud del exon es ' + len(exon)) ``` -- ```python print('La longitud del exon es ' + str(len(exon))) ``` ``` ## La longitud del exon es 20 ``` -- ```python print('La longitud del exon es ', len(exon)) ``` ``` ## La longitud del exon es 20 ``` -- ```python print(f'\nLa longitud del exon es {len(exon)}') ``` ``` ## ## La longitud del exon es 20 ``` --- ## Ejercicio .content-box-blue[ ¿Cuantas `A`, `C`, `G` y `T` hay en la secuencia? .tiny[ `dna = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'` ] Resuelve el problema de [Rosalind: Counting DNA Nucleotides](http://rosalind.info/problems/dna/) ] - Escribe un programa que te regrese la cantidad de nucleotidos - Output: un mensaje y el resultado