Olá
Para concluir o desafio, adicionei a função converter à classe ExtratorURL:
import locale
def converter(self, cotacao):
origem = extrator.get_valor_parametro("moedaOrigem")
destino = extrator.get_valor_parametro("moedaDestino")
quantidade = int(extrator.get_valor_parametro("quantidade"))
if (origem == destino):
raise ValueError("A moeda de origem não pode ser igual a de destino.")
if origem == "real":
valor_RS = quantidade
valor_US = quantidade / cotacao
elif origem == "dolar":
valor_US = quantidade
valor_RS = quantidade * cotacao
else:
raise ValueError("Este programa converte apenas reais e dólares.\n")
locale.setlocale(locale.LC_ALL, 'pt_BR')
valor_RS_string = locale.currency(valor_RS, grouping=True)
locale.setlocale(locale.LC_ALL, 'en_US')
valor_US_string = locale.currency(valor_US, grouping=True)
print(valor_RS_string + " equivale a " + valor_US_string)
A função funciona da seguinte forma:
extrator = ExtratorURL("https://bytebank.com/cambio?moedaDestino=dolar&quantidade=100&moedaOrigem=real")
extrator.converter(4.99)
O valor da conversão é passado como parâmetro, sempre no formato " 1 USD = X BRL" No exemplo foi usado o valor em 29/04/23
A saída do programa está na imagem abaixo: