Criando um Conversor de Moedas em Tempo Real com Python e APIs

Com a globalização e a popularização do comércio digital, converter moedas se tornou uma tarefa cada vez mais necessária — seja para quem faz compras internacionais, trabalha como freelancer, investe ou simplesmente quer acompanhar o câmbio.

Neste artigo, vamos aprender a criar um Conversor de Moedas em Tempo Real com Python, utilizando uma API de câmbio para buscar os valores atualizados diretamente da internet.


🔹 O que é uma API de câmbio?

Uma API (Application Programming Interface) é uma forma de acessar dados ou funcionalidades de um serviço externo. No caso de conversores de moedas, existem várias APIs que fornecem as taxas de câmbio em tempo real, como:

Neste artigo, vamos usar a ExchangeRate Host, pois é gratuita e não precisa de autenticação com chave de API.


🔹 Preparando o ambiente

Antes de começar, certifique-se de ter o Python instalado (3.8+).
Também vamos precisar da biblioteca requests para fazer chamadas HTTP.

Instalação:

pip install requests

🔹 Criando o conversor passo a passo

1. Importando bibliotecas

import requests

2. Função para buscar taxas de câmbio

A API da ExchangeRateHost funciona com endpoints do tipo:

https://api.exchangerate.host/convert?from=USD&to=BRL&amount=1

Isso retorna um JSON com a conversão.

Exemplo de função:

def converter_moeda(valor, moeda_origem, moeda_destino):
    url = f"https://api.exchangerate.host/convert?from={moeda_origem}&to={moeda_destino}&amount={valor}"
    resposta = requests.get(url)
    
    if resposta.status_code != 200:
        print("❌ Erro ao acessar a API")
        return None
    
    dados = resposta.json()
    return dados["result"]

3. Criando o programa principal

def main():
    print("💱 Conversor de Moedas em Tempo Real")
    valor = float(input("Digite o valor: "))
    moeda_origem = input("De qual moeda (ex: USD, EUR, BRL): ").upper()
    moeda_destino = input("Para qual moeda (ex: BRL, USD, EUR): ").upper()

    resultado = converter_moeda(valor, moeda_origem, moeda_destino)
    if resultado:
        print(f"\n💲 {valor:.2f} {moeda_origem} = {resultado:.2f} {moeda_destino}\n")


if __name__ == "__main__":
    main()

Saída esperada:

💱 Conversor de Moedas em Tempo Real
Digite o valor: 100
De qual moeda (ex: USD, EUR, BRL): USD
Para qual moeda (ex: BRL, USD, EUR): BRL

💲 100.00 USD = 550.30 BRL

🔹 Melhorias no conversor

Esse é apenas o início. Vamos expandir a aplicação.

1. Listando moedas suportadas

A API também permite listar todas as moedas disponíveis em:

https://api.exchangerate.host/symbols

Exemplo em Python:

def listar_moedas():
    url = "https://api.exchangerate.host/symbols"
    resposta = requests.get(url).json()
    simbolos = resposta["symbols"]
    for codigo, info in simbolos.items():
        print(f"{codigo} - {info['description']}")

2. Conversor em loop

Podemos criar um menu para o usuário fazer várias conversões sem precisar reiniciar o programa.

def menu():
    while True:
        print("\n--- MENU ---")
        print("1 - Converter moeda")
        print("2 - Listar moedas suportadas")
        print("3 - Sair")
        
        opcao = input("Escolha: ")

        if opcao == "1":
            valor = float(input("Digite o valor: "))
            origem = input("Moeda origem (ex: USD): ").upper()
            destino = input("Moeda destino (ex: BRL): ").upper()
            resultado = converter_moeda(valor, origem, destino)
            print(f"💲 {valor:.2f} {origem} = {resultado:.2f} {destino}")
        
        elif opcao == "2":
            listar_moedas()
        
        elif opcao == "3":
            print("👋 Encerrando programa...")
            break
        else:
            print("Opção inválida!")

🔹 Usando Pandas para relatórios (opcional)

Se quisermos algo mais avançado, podemos comparar múltiplas moedas ao mesmo tempo e gerar relatórios.

Exemplo: converter R$100 em várias moedas.

import pandas as pd

def relatorio_conversao(valor, moeda_origem, moedas_destino):
    resultados = {}
    for moeda in moedas_destino:
        resultados[moeda] = converter_moeda(valor, moeda_origem, moeda)
    df = pd.DataFrame(resultados, index=[f"{valor} {moeda_origem}"])
    return df

Uso:

print(relatorio_conversao(100, "BRL", ["USD", "EUR", "JPY", "GBP"]))

Saída:

             USD     EUR     JPY     GBP
100 BRL   18.55   16.90  2890.33   14.60

🔹 Possíveis Expansões

Esse projeto pode crescer bastante. Algumas ideias:

  • Criar interface gráfica com Tkinter ou PyQt.

  • Exportar conversões para Excel ou PDF.

  • Integrar com API de criptomoedas (Bitcoin, Ethereum).

  • Adicionar gráficos de variação do câmbio usando Matplotlib.

  • Criar um bot no Telegram para responder conversões.


✅ Conclusão

Neste artigo, construímos um conversor de moedas em tempo real com Python, integrando com uma API gratuita de câmbio.

Aprendemos a:

  • Usar requests para fazer chamadas HTTP.

  • Ler e interpretar JSONs de uma API.

  • Criar menus interativos em Python.

  • Expandir o projeto para relatórios e até visualizações.

Esse é um projeto prático e útil, que pode evoluir para ferramentas mais completas e até mesmo aplicações web ou móveis.


💡 Desafio para você: adapte o código para que o usuário possa salvar suas conversões em um arquivo CSV e depois consultar o histórico.

Comentários

Postagens mais visitadas deste blog

Laços de Repetição em Python: Conceitos e Exemplos Práticos

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Como Instalar o Xamarin com C#: Passo a Passo Completo