Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Código Não está funcionando como devia.

código do ExtratorArgumentosUrl.py

class ExtratorArgumentosUrl:

    def __init__(self, url):
        if self.urlEhValida(url):
           self.url = url
        else:
            raise LookupError("Url, Inválida!!!!!")

    @staticmethod
    def urlEhValida(url):
        if url:
            return True
        else:
            return False

    def extraiArgumentos(self):

        buscaMoedaOrigem = "moedaOrigem"
        buscaMoedaDestino = "moedaDestino"

        indiceInicialMoedaDestino   = self.url.find(buscaMoedaDestino) + len(buscaMoedaDestino) + 1

        indiceInicialMoedaOrigem    = self.url.find(buscaMoedaOrigem) + len(buscaMoedaOrigem) + 1
        indiceFinalMoedaOrigem      = self.url.find("&")

        moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]

        moedaDestino = self.url[indiceInicialMoedaDestino:]

        return moedaOrigem,moedaDestino

código do main.py

from ExtratorArgumentosUrl import ExtratorArgumentosUrl

'''
url = "https://www.bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar&valor=700"

argumento = "Lucas Gonçalves Dias"
#............0123456789  11  15
listaUrl = argumento.split(" ")
print(listaUrl)
'''
url = "https://www.bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar"

argumentosUrl = ExtratorArgumentosUrl(url)
moedaOrigem,moedaDestino = argumentosUrl.extraiArgumentos()
print(moedaDestino,moedaOrigem)

#index = url.find("moedadestino") + len ("moedadestino") + 1
#substring = url[index:]
#print(substring)

entretanto quando se roda o código:

(com a url = "moedaorigem=real&moedadestino=dolar&valor=700")

real&moedadestino=dolar =real

Process finished with exit code 0
(com a url = "https://www.bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar&valor=700") ou seja inteira

bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar .bytebank.com.br/cambio?moedaorigem=real

Process finished with exit code 0

o que poderia estar dando errado? desde já agradeço.

2 respostas
solução!

Oii Lucas, como você está? Espero que esteja bem ^-^

Sinto muito pela demora em obter um retorno.

Isso está acontecendo por um pequeno errinho de digitação. Observe as seguintes variáveis na sua função extraiArgumentos():

buscaMoedaOrigem = "moedaOrigem"
buscaMoedaDestino = "moedaDestino"

E agora, observe a url:

https://www.bytebank.com.br/cambio?moedaorigem=real&moedadestino=dolar

Veja que você está buscando o valor "moedaOrigem" com a letra "O" maiúscula, porém, na sua url o valor "moedaorigem" é todo minúsculo. A mesma coisa acontece para a "moedaDestino".

Sendo assim, para corrigir seu código para que ele faça a busca de forma correta, basta alterar as variáveis da função extraiArgumentos() para letras minúsculas, veja a modificação abaixo:

buscaMoedaOrigem = "moedaorigem"
buscaMoedaDestino = "moedadestino"

Com apenas essa alteração o seu código deverá funcionar como esperado. Teste!

Espero ter ajudado. E qualquer dúvida não hesite em perguntar.

Abraços!

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software