1
resposta

Está ocorrendo erros

este são os códigos:

main:
from ExtratorArgumentosUrl import ExtratorArgumentosUrl
'''
url = "https://bytebank.com/cambio?moedaorigem=moedadestino&moedadestino=dolar"

argumento = "Rodrigo de Oliveira Siqueira"
#               0123456789 11 15
listaUrl = argumento.split(" ")
print(listaUrl)


url = "https://bytebank.com/cambio?moedaoRigem=moedadestino&moedadestino=dolar"
#               find

argumentosUrl = ExtratorArgumentosUrl(url)
moedaOrigem,moedaDestino = argumentosUrl.extraiArgumentos()
valor = argumentosUrl.extraiValor()
print(moedaDestino,moedaOrigem, valor)
'''
#index = url.find("moedadestino")+ len("moedadestino") + 1
#substring= url[index:]
#print(substring)

#string = "bytebankbytebyte"
#stringNova = string.replace("byte", "rodrigo",1)
#print(stringNova)
'''
banco1 = "bytebank"
banco2 = "Bytebank".lower()

#print(banco2)
urlByteBank = "https://bytebank.com"
url1        = "https://buscasites.com/busca?q=https://bytebank.com"
url2        = "https://bitebank.com.br"
url3        = "https://bytebank.com/cambio/teste/teste"

print(url1.find(urlByteBank))
'''
print(len(argumentosUrl))

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

    def extraiArgumentos(self):

        buscaMoedaOrigem = "moedaorigem=".lower()
        buscaMoedaDestino = "moedadestino=".lower()



        indiceInicialMoedaOrigem    = self.encontraIndiceInicial(buscaMoedaOrigem)
        indiceFinalMoedaOrigem      = self.url.find("&")

        moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]

        if moedaOrigem == "moedadestino":
            self.trocaMoedaOrigem()
            indiceInicialMoedaOrigem = self.encontraIndiceInicial(buscaMoedaOrigem)
            indiceFinalMoedaOrigem = self.url.find("&")
            moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]

        indiceMoedaDestino = self.encontraIndiceInicial(buscaMoedaDestino)
        moedaDestino = self.url[indiceMoedaDestino]


        return moedaOrigem,moedaDestino

    def encontraIndiceInicial(self,moedaBuscada):
        return self.url.find(moedaBuscada) + len(moedaBuscada)

    def trocaMoedaOrigem(self):
        self.url = self.url.replace("moedadestino", "real", 1)
        print(self.url)

    def extraiValor(self):
        pass


def urlEhValida(url):
    if url and url.startwith("https//bytebank.com"):
        return True
    else:
        return False

e ocorre esses dois problemas:

Unresolved reference 'argumentosUrl'
Unused import statement 'from ExtratorArgumentosUrl import ExtratorArgumentosUrl'
1 resposta

Oii Deivid, como você está?

O primeiro erro: Unresolved reference 'argumentosUrl', está ocorrendo porque o seu código do arquivo "main" onde possui a variável "argumentosUrl" está comentado, então o programa não consegue localizar a variável "argumentosUrl".

Outros detalhes:

  • Na função urlEhValida, a string https//bytebank.com está faltando os dois pontos (:) após o https. Fica da seguinte forma: https://bytebank.com.

  • Quanto a extrair o tamanho com o uso do len, da forma como o seu código está irá causar erro, pois a variável argumentosUrl guarda uma instância da classe e essa instância não suporta o método len.

  • No segundo erro Unused import statement 'from ExtratorArgumentosUrl import ExtratorArgumentosUrl' é porque a importação não está sendo utilizada.

Código com as correções:

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

    def extraiArgumentos(self):

        buscaMoedaOrigem = "moedaorigem=".lower()
        buscaMoedaDestino = "moedadestino=".lower()



        indiceInicialMoedaOrigem    = self.encontraIndiceInicial(buscaMoedaOrigem)
        indiceFinalMoedaOrigem      = self.url.find("&")

        moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]

        if moedaOrigem == "moedadestino":
            self.trocaMoedaOrigem()
            indiceInicialMoedaOrigem = self.encontraIndiceInicial(buscaMoedaOrigem)
            indiceFinalMoedaOrigem = self.url.find("&")
            moedaOrigem = self.url[indiceInicialMoedaOrigem:indiceFinalMoedaOrigem]

        indiceMoedaDestino = self.encontraIndiceInicial(buscaMoedaDestino)
        moedaDestino = self.url[indiceMoedaDestino]


        return moedaOrigem,moedaDestino

    def encontraIndiceInicial(self,moedaBuscada):
        return self.url.find(moedaBuscada) + len(moedaBuscada)

    def trocaMoedaOrigem(self):
        self.url = self.url.replace("moedadestino", "real", 1)
        print(self.url)

    def extraiValor(self):
        pass


def urlEhValida(url):
    if url and url.startswith("https://bytebank.com"):
        return True
    else:
        return False


url = "https://bytebank.com/cambio?moedaoRigem=moedadestino&moedadestino=dolar"

argumentosUrl = ExtratorArgumentosUrl(url)

print(argumentosUrl.extraiArgumentos())

Caso após essas correções ainda não consiga obter o resultado da aula, deixe o por favor o link da aula que você está se referindo para que eu consiga ser mais assertiva quanto ao que você pretende fazer, tá bom?

Abraços!