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

[Sugestão] Desafio: conversor de moedas

def obter_valor():
    try:
        r = float(input('Informe o valor em reais(R$): '))
        if r <= 0:
            print('Informe um valor maior que zero')
            return obter_valor()
        return r
    except ValueError:
        print('Informe um valor valido')
        return obter_valor()
r = obter_valor()
us = 5.33
valor_convertido = r / us
print(f'O valor em dolar(US$) da entrega é US${valor_convertido:.2f}')
2 respostas
solução!

Olá, Delean, como vai?

O código está funcional e cumpre bem o objetivo proposto. A função para obter o valor em reais está bem estruturada, faz validação de entrada e retorna apenas valores válidos, garantindo que o cálculo seja feito corretamente.

Uma pequena forma de deixar mais próximo da proposta do exercício seria transformar a lógica de conversão em uma função própria, recebendo o valor em reais e a taxa de câmbio como parâmetros. Por exemplo, uma função converter_para_dolar(valor, taxa).

Parabéns pelo trabalho e obrigado por compartilhar seu código. O fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
import json
# Simulação de resposta da API de cotação do dólar
simula_api = """{"USDBRL":{"code":"USD","codein":"BRL","name":"Dólar Americano/Real Brasileiro","high":"5.4245","low":"5.32448","varBid":"0.0702","pctChange":"1.316602","bid":"5.4021","ask":"5.4051","timestamp":"1763762252","create_date":"2025-11-21 18:57:32"}}"""
def obter_valor():
    try:
        r = float(input('Informe o valor em reais (R$): '))
        if r <= 0:
            print('Informe um valor maior que zero')
            return obter_valor()
        return r
    except ValueError:
        print('Informe um valor válido')
        return obter_valor()
def obter_taxa_dolar():
    try:
        dados = json.loads(simula_api)
        taxa = float(dados['USDBRL']['bid'])  # valor de compra do dólar
        return taxa
    except Exception as e:
        print(f'Erro ao obter a cotação do dólar: {e}')
        return None

def converter_para_dolar(valor_reais, taxa_cambio):
    return valor_reais / taxa_cambio
# Execução
r = obter_valor()
us = obter_taxa_dolar()
if us:
    valor_convertido = converter_para_dolar(r, us)
    print(f'O valor em dólar (US$) da entrega é US${valor_convertido:.2f}')
else:
    print('Não foi possível realizar a conversão por falta da taxa de câmbio.')