Eu criei um método para a nossa classe ExtratorURL onde realiza a conversão de acordo com os parâmetros encontrados na URL. Omiti o código completo, deixando apenas o código do método e alguns exemplos de execução.
Segue o código abaixo:
def calcula_cambio(self):
# obtém o valor do parâmetro 'moedaOrigem'
moeda_origem = self.get_valor_do_parametro("moedaOrigem")
# obtém o valor do parâmetro 'moedaDestino'
moeda_destino = self.get_valor_do_parametro("moedaDestino")
# obtém o valor do parâmetro 'quantidade' e converte de 'str' para 'float'
quantidade = float(self.get_valor_do_parametro("quantidade"))
if moeda_origem == "dolar" and moeda_destino == "real":
# valor do dólar no momento da resolução do desafio
valor_do_dolar = 4.8
# converte dólar para real
dolar_para_real = valor_do_dolar * quantidade
# retorna string formatada exibindo os valores
return "USD %.2f é equivalente a R$ %.2f" %(quantidade, dolar_para_real)
if moeda_origem == "real" and moeda_destino == "dolar":
valor_do_real = 1.0
# converte real para dólar
real_para_dolar = (valor_do_real / 4.80) * quantidade
# retorna string formatada exibindo os valores
return "R$ %.2f é equivalente a USD %.2f" %(quantidade, real_para_dolar)
Criando os objetos com a classe, e chamando o método calcula_cambio(self)
url_1 = ExtratorURL("bytebank.com/cambio?moedaOrigem=real&quantidade=272.99&moedaDestino=dolar")
url_2 = ExtratorURL("https://bytebank.com.br/cambio?moedaOrigem=dolar&quantidade=122&moedaDestino=real")
url_3 = ExtratorURL("http://bytebank.com/cambio?moedaOrigem=real&quantidade=45&moedaDestino=dolar")
url_4 = ExtratorURL("https://www.bytebank.com.br/cambio?moedaOrigem=dolar&quantidade=66.20&moedaDestino=real")
print("1ª URL: " + url_1.calcula_cambio())
print("2ª URL: " + url_2.calcula_cambio())
print("3ª URL: " + url_3.calcula_cambio())
print("4ª URL: " + url_4.calcula_cambio())
# Resultado:
1ª URL: R$ 272.99 é equivalente a USD 56.87
2ª URL: USD 122.00 é equivalente a R$ 585.60
3ª URL: R$ 45.00 é equivalente a USD 9.38
4ª URL: USD 66.20 é equivalente a R$ 317.76