Fiz esse da seguinte forma, em vez de ter uma função só que calcula E já devolve pronto pra imprimir, separei em duas funções com responsabilidades bem distintas uma só faz a conta (recebe reais, devolve dólares) e a outra só cuida de mostrar o resultado formatado na tela. Também deixei a taxa de câmbio como um valor padrão da função, assim, se um dia eu quiser converter usando outra cotação (histórica, por exemplo), só preciso passar um segundo valor na chamada, sem mexer em mais nada.
**Algoritmo em linguagem natural **
Definir a taxa de câmbio atual como uma constante do programa (hoje, algo em torno de R$ 5,10 por dólar).
Perguntar ao usuário o valor em reais que ele quer converter.
Chamar uma função que recebe esse valor e a taxa de câmbio, e devolve o valor dividido pela taxa — esse é o valor em dólares.
Passar o valor em reais e o valor convertido para uma segunda função, responsável só por montar e exibir a mensagem final na tela.
**Código **
TAXA_CAMBIO_ATUAL = 5.10 # cotacao aproximada do dolar em reais
def converter_reais_para_dolar(valor_reais, taxa=TAXA_CAMBIO_ATUAL):
return valor_reais / taxa
def exibir_conversao(valor_reais, valor_dolar):
print(f"R$ {valor_reais:.2f} equivalem a US$ {valor_dolar:.2f} (cotacao: R$ {TAXA_CAMBIO_ATUAL:.2f})")
valor_em_reais = float(input("Digite o valor em reais que deseja converter: "))
valor_em_dolares = converter_reais_para_dolar(valor_em_reais)
exibir_conversao(valor_em_reais, valor_em_dolares)
A cotação que usei (R$ 5,10) é a de hoje em um sistema real, obviamente esse valor viria de uma API de câmbio atualizada em tempo real, e não fixo no código.