3
respostas

Dúvida de como interpretar a documentação

Ao me deparar com o método find() na aula, fui procurar mais informações na documentação.

Encontrei o texto:

str.find(sub[, start[, end]]) Return the lowest index in the string where substring sub is found within the slice s[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 if sub is not found.

Com base na documentação, tentei resolver o problema de conseguir extrair valores de vários parâmetros de uma url antes do professor falar como seria. Queria usar o índice de start, assim como foi usado na aula. Porém, não consegui sair da sintaxe str.find(sub[, start[, end]]) e chegar em indice_e_comercial = url_parametros.find('&', indice_valor), como foi feito na aula.

Pela sintaxe, entendi que deveria colocar colchetes e as vírgulas também me confundiram um pouco da forma que estão. Como devo interpretar essas sintaxes da documentação?

3 respostas

Bruno, olá!

Espero que esteja bem.

Segue abaixo um trecho de código que funciona, teste em sua máquina, por favor:


chave = {'arroz': 34, 'feijão': 40, 'macarrão': 45}

for biscoito in chave:
    variavel = str.find(biscoito, 'arroz')
    print(biscoito)
    print(variavel)

Perceba que a saída no terminal é essa que indica que na primeira rodada onde a palavra "arroz" é encontrada a variável recebe o valor de o e quando não é encontrada recebe o valor de -1:

arroz
0
feijão
-1
macarrão
-1

Espero ter ajudado, em caso positivo marque como solução ao tópico.

Abraços!

Na realidade a minha dúvida é sobre como usar a documentação. Conforme coloquei acima, não consegui utilizar a sintaxe que está na documentação do find() - str.find(sub[, start[, end]]) - e chegar no código que queria escrever - indice_e_comercial = url_parametros.find('&', indice_valor).

Bruno, olá!

Segue abaixo uma descrição da função find onde resumindo é informado que há o self(o próprio objeto, similar ao 'this' em outras linguagens), o sub que seria a string procurada e dois parâmetros opcionais que quando utilizados indicam em qual índice começa e termina sua busca, sendo start e end, respectivamente conforme abaixo ou qual string está buscando:

Imagem da descrição do método find no Python Para facilitar o entendimento segue abaixo um código comentado:

nome = 'Arroz'

variavel = (str.find(nome, 'r'))
variavel_com_posicao = (str.find(nome, 'r', 5)) # mude o último número (5) para o resultado ser = 1, ou seja, verdadeiro e a ultima linha printará o valor 1=encontrado

print(f"Encontado: {variavel}") # resultado = 1 ou seja, encontrado
print(f"Não encontado: {variavel_com_posicao}") # resultado = -1 ou seja, não encontrado

#Sua dúvida específica
url_parametros = 'abc&123'
indice_valor = 3 # mude essa variável para 2 ou 4 para que o resultado do print na última linha seja -1=não encontrado
indice_e_comercial = (str.find(url_parametros, '&', indice_valor))
print(indice_e_comercial)

Espero ter ajudado, em caso positivo marque o tópico com solucionado.

Abraços!