Python para Bioinformática Manipulação de Strings Prof. Alessandro Brawerman ì 2 Manipulando Strings ì Manipulação de strings é uma a;vidade frequente em programas Python. ì O jeito mais básico de manipular strings é através de métodos que estão dentro da própria classe. ì Podemos fazer um limitado número de tarefas em strings através desses métodos. >>> teste = “Isto e uma string.” ì A função len pode ser usada para encontrar o tamanho de uma string contando espacos e caracteres especiais, ou seja, tudo que pertencer a essa string. >>> len(teste) 3 Substring ì a=”abcdefghijk” print a[2:5] ì resulta em cde ou… ì def substr(str,origem, tamanho): print substr(“abcdefgkijk”,2,3) ì resulta em cde 4 Método find find (substring, inicio, fim) ì Retorna o índice da primeira ocorrência de substring ì inicio e fim são opcionais e indicam os intervalos de índices onde a busca será efetuada ì Os defaults são 0 e o comprimento da string, respec;vamente ì Caso substring não apareça na string, é retornado -­‐1 ì Observe que o operador in pode ser usado para dizer se uma substring aparece numa string 5 Método find 6 Exercício ì Dada uma string representando uma cadeia de DNA, faça um programa que: 1. Imprima a quan;dade de bases desta cadeia; 2. Inverta a string; 3. Caso a sequência CTAG acontecer imprima a posição inicial da sequência. 4. Atribua a sequência de caracteres da cadeia começando por C até o final da string para uma outra string. 5. Imprima o resultado da operação em 4. 7 Método Join join(sequência) ì Retorna uma string com todos os elementos da sequência concatenados ì Os elementos da sequência têm que ser strings ì A string objeto é usada como separador entre os elementos ì Ex.: >>> "/".join(("usr","bin","python")) 'usr/bin/python’ 8 Método Join >>> "Q".join((1,2,3,4,5)) TypeError: sequence item 0: expected string, int found >>> "Q".join(('1','2','3','4','5')) '1Q2Q3Q4Q5' 9 Métodos Upper e Lower ì lower() ì Retorna a string com todos os caracteres maiúsculos conver;dos para minúsculos ì upper() ì Retorna a string com todos os caracteres minúsculos conver;dos para maiúsculos ì Ex.: >>> print "Esperança".upper() ESPERANÇA >>> print "Pé de Laranja Lima".lower() pé de laranja lima 10 Método Replace replace(velho,novo,n) ì Subs;tui as instâncias da substring velho por novo ì Se n for especificado, apenas n instâncias são trocadas ì Caso contrário, todas as instâncias são trocadas 11 Método Replace ì Ex.: >>> s = "quem parte e reparte, fica com a maior parte" >>> s.replace("parte","parcela") 'quem parcela e reparcela, fica com a maior parcela' >>> s.replace("parte","parcela",2) 'quem parcela e reparcela, fica com a maior parte' 12 Exercício ì Dada uma variável representando uma cadeia de DNA, “ATTATTATTATTA”, faça um programa que: 1. Subs;tua todos os Ts por Cs 2. Subs;tua os primeiros 2 As por Gs 3. Encontre a posição do primeiro A 13 Método Split split(separador) ì Retorna uma lista com as substrings presentes entre cópias da string separador ì Faz o contrário do método join ì Se separador não for especificado, são assumidas sequências de caracteres em branco, tabs ou newlines ì Ex.: >>> s = "xxx yyy zzz xxx yyy zzz” >>> s.split() ['xxx', 'yyy', 'zzz', 'xxx', 'yyy', 'zzz'] 14 Método Strip strip(ch) ì Retorna a string sem caracteres iniciais ou finais que estejam na string ch ì Se ch não for especificada, re;ra caracteres em branco do início e/ou fim ì Pode-­‐se também usar rstrip() para re;rar caracteres à direita (final) ou lstrip() para re;rar caracteres à esquerda (início) 15 Método Strip 16 Método Count count(str) ì Conta o número de ocorrências de uma string >>> teste = “Isto e uma string.” >>> print(“%s” %teste.count(“s”)) 2 17 Exercícios ì Dada uma variável com o seguinte conteúdo “This is just a simple string.”, faça um programa que: 1. 2. 3. 4. 5. 6. 7. 8. Imprima a quan;dade de caracteres da string; Subs;tua simple por short. Imprima o resultado; Imprima a quan;dade de caracteres s da string; Imprima a posição da palavra string; Separe a string em uma outra variável exatamente no caracter a; Imprima a string inicial toda em maiúscula; Imprima a string inicial com as letras iniciais de cada palavra em maiúscula (.;tle); Imprima a cadeia original, porém somente a primeira letra da frase em maiúscula (.capitalize). 18 Outros Métodos ì isupper() ì islower() ì is;tle() ì isalnum() – string alfanumérica ?? ì isalpha() – strin contém apenas letras ?? ì isdigit() – apenas números ?? 19 Outros Métodos ì Adicionar espaços em ambos lados da string: >>> 'A string.'.ljust(15) >>> 'A string.'.rjust(15) ì O método center é usado para centralizar uma string dentro de espacos. >>> 'A string.'.center(15) 20 Exercício ì Dada uma string “GCTAATGCTTGGTTAATTCCTTGGAC”, faça um programa que imprima a posição inicial de cada uma das sequências TT.