3
respostas

Desafio da moeda

Segue abaixo meu código :

url = "bytebank.com/cambioquantidade=100&moedaOrigem=dolar&moedaDestino=real"
extrator_url = ExtratorURL(url)

valor_dolar = 5.50  # 1 dólar = 5.50 reais
moeda_origem = extrator_url.get_valor_parametro("moedaOrigem")
moeda_destino = extrator_url.get_valor_parametro("moedaDestino")
quantidade = extrator_url.get_valor_parametro("quantidade")

if moeda_origem == "dolar" and moeda_destino == "real":
    multiplicacao = float(quantidade)*valor_dolar
    print(f"O valor de ${quantidade} dólares convertidos conforme cotação de hoje a R${valor_dolar:.2f} reais é de: R${multiplicacao:.2f} reais")
elif moeda_origem == "real" and moeda_destino == "dolar":
    divisao = float(quantidade)/valor_dolar
    print(f"O valor de R${quantidade} reais convertidos com o dolar de R${valor_dolar:.2f} para {moeda_origem} é de: R${divisao:.2f} dólares")
else:
    print(f" A conversão das moedas escolhidas como '{moeda_origem} e {moeda_destino}' não foram encontradas.")
resultado: 

O valor de $100 dólares convertidos conforme cotação de hoje a R$5.50 reais é de: R$550.00 reais
3 respostas

Olá pessoal.

Como programadores sempre temos de pensar e codificar otimizados. Fazer um print com o resultado da conversão economiza código. Segue minha forma como fiz.

if moeda_origem.lower() == "dolar" and moeda_destino.lower() == "real":
    valor_convertido = VALOR_DOLAR * float(quantidade)
elif moeda_origem.lower() == "real" and moeda_destino.lower() == "dolar":
    valor_convertido = float(quantidade) / VALOR_DOLAR
else:
    print(f"Câmbio de {moeda_origem} para {moeda_destino} não está disponível.")

print(f"Valor convertido de {moeda_origem} para {moeda_destino} com qtde {quantidade} é {valor_convertido:.2f} {moeda_destino}")

O meu código esta funcional, mas o seu realmente ficou melhor porque esta muito mais otimizado. Valeu pela dica vou me atentar a isso em meus códigos.

Fala amigos! Eu implementei a coleta dinâmica do valor do dólar. Fiz o seguinte:

Primeiro, eu importo o módulo requests:

import requests

Então, criei um novo método, o get_dolar_value:

 def get_dolar_value():
    url = "http://economia.awesomeapi.com.br/json/last/USD-BRL"
    r = requests.get(url)
    cotacao = r.json()
    return "{:.2f}".format(float(cotacao["USDBRL"]["bid"]))

Então, ao invés de utilizar o valor fixo da variável, eu chamo o método e coleto em tempo real:

VALOR_DOLAR = extrator_url.get_dolar_value()

if moeda_origem == "dolar" and moeda_destino == "real":
    valor_conversao = VALOR_DOLAR * float(quantidade)
    print(f"US${quantidade:.2f} dólares em reais são R${valor_conversao:.2f}")

elif moeda_origem == "real" and moeda_destino == "dolar":
    valor_conversao = float(quantidade) / VALOR_DOLAR
    print(f"R${(quantidade):.2f} reais em dólares são US${valor_conversao:.2f}")

else:
    print("Conversão impossível de ser realizada.")

Com isso, eu tenho valores reais e dinâmicos. Abraços!