Ajuda sobre métodos. [RESOLVIDO]

1. Ajuda sobre métodos. [RESOLVIDO]

Paulo Henrique Bobak
STX

(usa Outra)

Enviado em 19/10/2018 - 13:55h

Gostaria de saber como funciona os métodos find() e startswith() pois tudo que encontrei achei meio confuso de entender.


  


2. MELHOR RESPOSTA

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 19/10/2018 - 19:44h

Olá Paulo, saudações.
Para entender o funcionamento é importante que você entenda de fatiamento de strings, então caso não saiba do que estou falando este é o primeiro ponto a estudar.
Bem, embora a sintaxe de uso seja bem semelhante os resultados de cada método são bem diferentes.

No caso o método find retorna um número inteiro positivo, que é o índice da primeira posição na string onde está o valor procurado, ou o inteiro negativo "-1" no caso de não localizar o valor da busca.
A sintaxe é: str.find(sub[, start[, end]] )
Onde "str" é a string toda onde dejejamos fazer a pesquisa, "sub" é a substring (trecho) que estamos procurando dentro da string e os parâmetros opcionais "start" e "end" delimitam a fatia da string onde a busca será feita, se omitidos começará no início da mesma até localizar a primeira ocorrência.
Exemplo:

str = "Estou procurando em um texto por palavras chave, quero saber se elas existem e onde no texto (string) começam. Para isso posso usar o método find"
print(str.find("texto"))
print(str.find("Texto"))
print(str.find("texto", 24, 100))

Resultado:

23
-1
87

Ou seja, a primeira ocorrência de "texto" começa com a letra "t" na posição "23", não existe na string a palavra "Texto" com "T" maiúsculo, então e resposta é "-1" e por fim para localizar a segunda ocorrência procuramos em uma fatia posterior à primeira ocorrência e localizamos na posição "87".

Vejamos agora o funcionamento do método startswith. O método retorna "True" (verdadeiro) se o valor procurado está no começo do trecho onde a busca é efetuada ou "False" se o valor não estiver no começo.
A sintaxe é: str.startswith(sub[, start[, end]] )
Exemplo:

str = "Estou procurando em um texto por palavras chave, quero saber se elas existem no início do texto (string). Para isso posso usar o método startswith"
print(str.startswith("texto"))
print(str.startswith("Texto"))
print(str.startswith("texto", 23, 100))
print(str.startswith("Texto", 23, 100))
print(str.startswith("texto", 90, 100))

Resultado:

False
False
True
False
True

Podemos ver que a string não começa com "texto" nem com "Texto" e por isso o resultado é "False", depois vemos que a fatia que começa em 23 e vai até 100 começa com "texto" e obtemos um "True", mas o mesmo trecho não começa com "Texto" (T maiúsculo), então recebemos um "False" e por fim recebemos um "True" quando testamos se a fatia de 90 até 100 começa com o valr procurado.

Espero que os exemplos tenham esclarecido.
Abraço





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts