Métodos de String

Ver Todos os Exercícios

Teoria

Aprofundando conhecimentos em Strings

Fala aí! Aqui eu considero que você já tá manjando tudo de strings, beleza?! Acontece que a maioria das operações que a gente precisa fazer, o Python já pode fazer automaticamente com o uso de métodos (funções) que já vem prontos. Hoje a gente vai bater um papo sobre esses métodos e como eles podem facilitar sua vida durante o desenvolvimento das suas resoluções nas provas, beleza?! Enfatizando que tudo que eu vou falar aqui dá pra fazer com os conteúdos que a gente já tem, mas se torna MUITO mais fácil decorando alguns métodos. Vamo lá?!

upper() e lower()

Primeiramente, esses métodos são usados pra pegar uma cópia de uma string em caixa alta (upper()) ou caixa baixa (lower()).

Se liga que a gente pegou uma cópia maiúscula no primeiro print() e minúscula no segundo print(), porém a string original continua intacta, beleza?!

Essas funções geralmente são úteis quando a gente quer fazer comparações entre strings, se você estiver comparando só o conteúdo, sem se importar com a capitalização.

strip() e split()

Essas funções são capazes de limpar uma string e separar uma string em uma lista, respectivamente.

Se liga na primeira string, ela tem um \n no fim e um espaço na frente. A versão strip() dessa string contém apenas o texto, só o que importa. Agora, na segunda string eu usei o método split() e disse pra separar a string em uma lista usando o espaço “ “ como delimitador. Poderia ser qualquer outro delimitador.

Nesse caso a gente separou a string em todas as ocorrências de “,” (vírgula). Mas se liga que, assim como nos métodos upper() e lower(), as variáveis originais continuam intocadas. Esses métodos retornar cópias modificadas, mas a original continua lá guardada na variável.

Esses dois métodos são especialmente úteis em exercícios de arquivos, já que cada linha de um arquivo termina com “\n” e geralmente a gente tem várias informações por linha e queremos separar elas de alguma forma.

index() e find()

Esses métodos têm a mesma finalidade. Com eles, a gente pode saber a localização da primeira ocorrência de um caractere na string. A diferença é que o index() retorna um erro caso o caractere não exista, enquanto o find() retorna -1.

Só é possível usando o index() quando temos certeza que existe caractere na string. Com o find, podemos checar. No entanto, dá no mesmo no fim, pois precisamos checar se o resultado é -1 ou não. São só duas formas de fazer a mesma coisa.

Nos dois casos é necessário checar se o caractere existe. Mas com o index() é preciso checar antes, e com find() é preciso checar depois.

Outros

Beleza! Eu separei e detalhei pra você os métodos mais importantes e que realmente podem salvar a sua vida na prova. Mas não são os únicos. Caso você esteja com tempo e curiosidade, vou deixar uma tabelinha aqui com todos os métodos. Porém, enfatizo, os mais importantes a gente já falou, ok?!

Valeu, cara! Partiu fazer exercícios pra ficar FERA nessa parada de string?! Bora!

strip() e split()

index() e find()

Outros

Exercícios Resolvidos

Exercício Resolvido #1

Escreva um função que receba uma frase e uma palavra. A função deve ser capaz de retornar a frase original, mas com a última palavra da frase substituída pela palavra nova. As entradas e saídas do programa devem ser realizadas no código principal.

Passo 1

Vamos começar o nosso programa definindo a função responsável por realizar a troca da última palavra da frase recebida como parâmetro pela nova palavra (também recebida como parâmetro):

Onde basicamente temos a função s u b s t i t u i r que recebe f (frase) e p (nova palavra) como parâmetros.

Após isso, atribuímos a uma variável a u x uma lista com a separação de cada palavra da frase f , observe que isso pode ser feito através do método split.

Em seguida, atribuímos a variável u l t i m a P a l a v r a o último elemento da lista armazenada em a u x , que nada mais é do que a última palavra da frase original.

Por fim, utilizamos o método replace para substituir u l t i m a P a l a v r a (última palavra da frase original) por p (nova palavra recebida como parâmetro) e retornamos isso ao programa principal.

Passo 2

Com a nossa função s u b s t i t u i r definida, podemos codificar o programa principal:

Que basicamente requisita ao usuário a entrada da frase e da nova palavra, atribui a n o v a F r a s e o retorno obtido na chamada da função s u b s t i t u i r passando como parâmetros f r a s e e p a l a v r a e, por fim, imprime na tela o conteúdo de n o v a F r a s e (frase original com a última palavra substituída pela nova palavra).

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #2

Desenvolva uma função que receba como parâmetro uma cadeia de DNA e retorne uma cadeia complementar. A entrada e saída de dados do programa deve ser feita no código principal.

Exemplo de funcionamento do programa:

Passo 1

Vamos começar o nosso programa definindo a função c a d e i a C o m p l e m e n t a r :

Essa função recebe como parâmetro uma cadeia de DNA e divide cada uma das base nitrogenadas presentes nela em uma lista l i s t a Q u i m i c a , através da função split.

Após isso, utilizamos o comando for para percorrermos l i s t a Q u i m i c a adicionando em f i t a 2 a base nitrogenada correspondente ao elemento obtido. Por exemplo, se o primeiro elemento de l i s t a Q u i m i c a for “A” o primeiro elemento de f i t a 2 deve ser “T” e assim por diante.

Por fim, basta retornarmos f i t a 2 ao código principal.

Passo 2

Com a função c a d e i a C o m p l e m e n t a r definida, podemos codificar o código principal:

Que consiste basicamente em obter a primeira sequência de bases nitrogenadas e passá-las como parâmetro para a função c a d e i a C o m p l e m e n t a r . Em seguida, o programa irá através de um comando for imprimir o conteúdo da lista f i t a 2 (cadeia complementar de bases nitrogenadas) obtida no retorno da função.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #3

Desenvolva uma função que receba como parâmetro uma frase e seja capaz de retornar o número de palavras que ela contém. As entradas e saídas de dados do programa devem ser feitas no código principal.

Passo 1

Vamos começar o nosso programa pela definição da função:

A função c o u n t P a l a v r a s basicamente utiliza o método split para separar cada uma das palavras da frase recebida como parâmetro em uma lista a u x . Após isso, utiliza outro método, chamado len, para retornar ao código principal a quantidade de elementos da lista (quantidade de palavras da frase).

Passo 2

Com a função c o u n t P a l a v r a s definida podemos codificar o código principal:

Que basicamente consiste em ler a frase digitada pelo usuário, passar a mesma como parâmetro para a função c o u n t P a l a v r a s e imprimir na tela o retorno obtido (número de palavras da frase).

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #4

Desenvolva uma função que receba uma frase como parâmetro e retorne uma nova frase onde todos os espaços originalmente presentes sejam substituídos por “#”. As entradas e saídas de dados devem ser realizadas no código principal.

Passo 1

Vamos começar o nosso programa definindo a função s u b s t i t u i E s p a c o :

Que basicamente é responsável por pegar a frase recebida como parâmetro e utilizar o método replace passando para o mesmo o que será substituído (espaço em branco) pelo o que será substituído (hashtag). Por fim, a função simplesmente retorna a substituição realizada.

Passo 2

Com a função s u b s t i t u i E s p a c o definida, basta codificarmos o código principal:

Que consiste simplesmente em requisitar a entrada da frase, passar a mesma como parâmetro para a função s u b s t i t u i E s p a c o e imprimir a nova frase (em que os espaços são substituídos por hashtags) obtida através do retorno da função.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #5

Faça um programa que receba como entrada um frase e imprima essa frase substituindo os caracteres maiúsculos por minúsculos e vice-versa.

Passo 1

Beleza, vamos lá! O código desse programa é bem simples, ele praticamente é feito dentro de uma estrutura for, saca só:

A grande sacada aqui é sabermos utilizar os métodos de string islower (verifica se todos os caracteres de uma string são minúsculos), lower (cria uma cópia de uma string com todos os caracteres minúsculos) e upper (cria uma cópia de uma string com todos os caracteres maiúsculos).

Passo 2

Com isso, nós iremos percorrer cada caractere da string f r a s e utilizando o método islower para verificarmos se o caractere é minúsculo. Caso seja, utilizaremos o método upper para imprimirmos esse mesmo caractere em maiúsculo, caso contrário, o método lower para realizarmos a impressão desse caractere em minúsculo.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #6

Observe a função a seguir:

Substitua a linha de código indicada acima pela aplicação de um dos métodos de string que faça com que essa função seja capaz de imprimir na tela a posição da primeira ocorrência de determinada substring c h a r na string f r a s e .

Passo 1

Para resolvermos esse exercício temos que conhecer o método de string find, que é responsável por verificar a presença de determinada substring em uma string e retornar a posição do primeiro caractere de dela.

Passo 2

Sendo assim, basta utilizarmos o método find da string f r a s e passando como parâmetro a substring c h a r (caractere inserido pelo usuário).

Resposta

Portanto, a função e n c o n t r a C h a r é definida da seguinte forma:

Exercício Resolvido #7

Desenvolva uma função que receba como parâmetro uma frase e uma palavra e seja capaz de identificar a quantidade de ocorrências dessa palavra na frase. As entradas e saídas de dados devem ser realizadas no código principal.

Passo 1

Vamos começar o nosso programa definindo a função c o u n t P a l a v r a :

Que basicamente é responsável por pegar a frase recebida como parâmetro e utilizar o método count passando como parâmetro para o mesmo a palavra que terá suas ocorrências contadas. Após isso, a função simplesmente retorna a quantidade de ocorrências obtidas no retorno do método da string.

Passo 2

Com a função c o u n t P a l a v r a definida, vamos agora codificar o código principal do programa:

Que consiste simplesmente em requisitar a entrada da frase que servirá de base e da palavra que terá suas ocorrências contadas na frase, passar as mesmas como parâmetros para a função c o u n t P a l a v r a e imprimir a quantidade de ocorrências obtidas através do retorno da função.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #8

Faça uma função que receba como parâmetro a URL de um site e retorne essa mesma URL sem o prefixo “https://”. As entradas e saídas de dados devem ser realizadas no código principal.

Exemplo de funcionamento:

Passo 1

Bom, vamos começar entendendo que método teremos que utilizar.

De certa forma, o que nós queremos fazer é “limpar” o prefixo “https://” do início de uma string que armazena a URL de um site. Sendo assim, podemos utilizar o método de string strip, que é responsável por analisar e remover uma substring passada como parâmetro das extremidades de uma determinada string.

Passo 2

Agora que já conhecemos o método que iremos utilizar, basta definirmos a função l i m p a U r l :

Que basicamente irá pegar a URL recebida como parâmetro e remover dela a substring passada como argumento do método strip. Por fim, essa função irá simplesmente retornar a URL “limpa”.

Passo 3

Com a função l i m p a r U r l definida, basta desenvolvermos o código principal:

Que basicamente irá requisitar a entrada da URL ao usuário, passar a mesma como parâmetro da função l i m p a U r l e imprimir a nova URL (sem o prefixo “https://”) obtida através do retorno dessa mesma função.

Resposta

Ei, a resposta está no passo a passo :)