Considere o código junto a um interpretador Python: s = "u...
s = "uma flauta, duas flautas, três flautas" s.rfind("flauta") s.find("flauta") s.find("flautas",1) s.find("flautas",17)
O retorno em tela será:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a A - 31, 4, 17, 17.
Para chegar a essa resposta, precisamos entender as funções rfind() e find() da linguagem Python, que são usadas para localizar substrings dentro de uma string. A função find() retorna o menor índice da substring, se ela for encontrada, ou -1 caso contrário. A função rfind() é semelhante, mas retorna o maior índice, ou seja, localiza a última ocorrência da substring.
Na string "uma flauta, duas flautas, três flautas", a função rfind("flauta") procura pela última ocorrência da palavra "flauta", ignorando se está no singular ou plural. Isso nos leva à última "flauta" antes da vírgula, começando no índice 31.
A função find("flauta") procura pela primeira ocorrência da palavra "flauta", começando a busca pelo índice 0 da string. Isso nos leva à primeira ocorrência, que começa no índice 4.
Continuando, a função find("flautas", 1) começa a busca pelo índice 1, encontrando a primeira ocorrência da palavra "flautas" no plural, que se inicia no índice 17.
Finalmente, find("flautas", 17) começa a busca a partir do índice 17, mas como já é o início da segunda ocorrência de "flautas", não precisa procurar mais adiante, retornado novamente o índice 17.
Assim, podemos ver que a sequência correta dos índices em que a palavra "flauta" ou "flautas" aparece na string é 31, 4, 17, 17, conforme indicado na alternativa A.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO: A
's' é uma variável que carrega um texto (String). --> s = "uma flauta, duas flautas, três flautas".
- O METADO "FIND" VAI ENCONTRAR A PRIMEIRA POSIÇÃO DA PALAVRA DESEJADA.
- O METADO "RFIND" VAI ENCONTRAR A ÚLTIMA POSIÇÃO DA PALAVRA DESEJADA.
- FIND("TEXTO", 1 ( ESSE 1 SIGNIFICA QUE ELE PROCURAR A POSIÇÃO DESEJADA.)
s.find("flauta") ---> s tá chamando o método find que consequentemente o "find" vai querer localizar a palavra flauta.
s.find = 4 ---- pq --- "uma flauta..." só basta contar os caracteres ----- u = 1ª, m = 2ª ,a = 3ª o espaço em branco é igual = 4ª e a palavra flauta = 5ª posição
OBS: Lembrando que posições são vetores começa a conta da inicial posição 0 equivale posição 1 , então só basta a gente no final de contar subtrair por -1 ( Como se fosse uma formula, sempre subtraia por -1).
- RESOLUÇÂO:
uma flauta
u = 1ª, m = 2ª ,a = 3ª o espaço em branco é igual = 4ª e a palavra flauta = 5ª posição ---->
5ª - 1ª ( Formula )
...ASSIM SENDO É SÓ FAZER COM OS DEMAIS
S é uma variavel e carrega um texto, ou seja, uma string (lembrando que as strings precisam ser isoladas com aspas)
s = "uma flauta, duas flautas, três flautas".
Para resolver essa questão, é importante saber a posição de cada caracter.
O primeiro caracter (a letra u) ocupa a posição 0, o segundo caracter (a letra m) ocupa a posicao 1, o terceiro caracter (a letra a) ocupada a posicao 2, o quarto caracter (o espaco em branco) ocupa a posicao 3 e assim por diante!
a funcao find ira encontrar a primeira posicao da palavra em desejada
a funcao rfind ira encontrar a última posicao da palavra em desejada!
Seu parâmetro se dá da seguinte forma: ( palavra a ser pesquisada, início do indice, fim do indice)
s.rfind("flauta") - ele quer a última posição da palavra "flauta" na variável s. Como a questao especificou onde será o início do índice, nem o fim, deve-se adotar o início de posição 0 e o fim como o fim da string.
A ultima palavra flauta começa na posição 31
s.find("flauta") - ele quer a primeira posição da palavra flauta na variavel s.
A primeira palavra flauta começa na posição 4
s.find("flautas",1) - ele quer a primeira posicao da palavra flautaS a partir do índice de posição 1
A primeira palavra flautas, contando a partir da posição 1, está na posição 17
s.find("flautas",17) - ele quer a primeira posição da palavra flautaS a partir da posição 17.
A primeira palavra flautas, contando a partir da posição 17, está na posição 17!
Portanto, o retorno das posições das funções é: 31, 4, 17, 17
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo