Considere o código junto a um interpretador Python: s = "u...

Próximas questões
Com base no mesmo assunto
Q1800663 Programação
Considere o código junto a um interpretador Python:
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á:
Alternativas

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