Conversor de Monedas en Python

Conversor de Monedas en Python

Conversor de Monedas en Python

Enlace Patrocinado

Respondent.io

Respondent.io es una plataforma en línea que conecta investigadores y empresas con participantes para estudios de mercado y encuestas remuneradas. Su objetivo es facilitar la recopilación de datos cualitativos y cuantitativos mediante entrevistas, encuestas y pruebas de usuario

Segundo proyecto de la guia 50 Proyectos de Programacion para Practicar y Aprender. Proyectos para Principiantes

Enunciado del proyecto

Este es un conversor de monedas que permite convertir entre diferentes divisas utilizando tasas de cambio definidas.

Código Python:


import requests

def obtener_tasa_cambio(moneda_origen, moneda_destino):
    """
    Obtiene la tasa de cambio entre dos monedas utilizando 
    una API externa.
    En este ejemplo, usaremos una API de ejemplo 
    (puedes usar una API real como exchangerate.host).
    Esta función es un esqueleto y necesita ser 
    implementada con una API real.

    Args:
        moneda_origen (str): Código de la moneda de origen 
        (ej: USD).
        moneda_destino (str): Código de la moneda de destino 
        (ej: EUR).

    Returns:
        float: Tasa de cambio. Devuelve None si no se 
        puede obtener la tasa.
    """
    try:
        # Reemplaza esta URL con la URL de la API real que 
        # vayas a usar.
        # Por ejemplo, para exchangerate.host:
        # url = f"https://api.exchangerate.host/
        #convert?from={moneda_origen}&to={moneda_destino}"
        # Para una API ficticia:
        url = f"https://api.example.com/currency?
        from={moneda_origen}&to={moneda_destino}"  
        #URL Ficticia, debes modificarla
        
        # Realiza la petición a la API
        response = requests.get(url)
        response.raise_for_status() 
        # Lanza una excepción para códigos de error 
        #HTTP (4xx o 5xx)
        data = response.json()

        # El formato de la respuesta dependerá de la API.  
        # Aquí se asume un formato.
        # Debes ajustar esto según la documentación de la 
        # API que uses.
        tasa_cambio = data['rate']   
        # 'rate' es un ejemplo, puede ser 
        #'conversion_rate', 'result', etc.
        return tasa_cambio
    except requests.exceptions.RequestException as e:
        print(f"Error de conexión: {e}")
        return None
    except (KeyError, TypeError) as e:
        print(f"Error al procesar la respuesta de la API: 
        {e}")
        return None


def convertir_moneda(cantidad, moneda_origen, 
    moneda_destino):
    """
    Convierte una cantidad de una moneda a otra.

    Args:
        cantidad (float): La cantidad a convertir.
        moneda_origen (str): Código de la moneda de origen (ej: USD).
        moneda_destino (str): Código de la moneda de destino (ej: EUR).

    Returns:
        float: La cantidad convertida, o None si hubo 
        un error.
    """
    tasa = obtener_tasa_cambio(moneda_origen, 
    moneda_destino)

    if tasa is None:
        print("No se pudo obtener la tasa de cambio.")
        return None

    cantidad_convertida = cantidad * tasa
    return cantidad_convertida


def main():
    """
    Función principal que interactúa con el usuario.
    """
    print("Bienvenido al Conversor de Monedas")

    moneda_origen = input("Ingrese la moneda de origen 
    (ej: USD): ").upper()
    moneda_destino = input("Ingrese la moneda de destino 
    (ej: EUR): ").upper()

    try:
        cantidad = float(input("Ingrese la cantidad a 
         convertir: "))
    except ValueError:
        print("Cantidad inválida. Ingrese un número.")
        return

    resultado = convertir_moneda(cantidad, moneda_origen,
    moneda_destino)

    if resultado is not None:
        print(f"{cantidad} {moneda_origen} son equivalentes 
        a {resultado:.2f} {moneda_destino}")


if __name__ == "__main__":
    main()
        

Conversor de Monedas en Python. Explicación del Código:

  • obtener_tasa_cambio(moneda_origen, moneda_destino):
    Esta función (incompleta) debe obtener la tasa de cambio actual entre dos monedas desde una API externa. El ejemplo usa una URL ficticia. Debes reemplazarla por una API real como exchangerate.host o similar. La función intenta manejar errores de conexión y errores al procesar la respuesta de la API. Es crucial adaptar el código dentro del bloque try para que coincida con el formato de la respuesta de la API que elijas.
  • convertir_moneda(cantidad, moneda_origen, moneda_destino):
    Esta función toma una cantidad y las monedas de origen y destino, y utiliza obtener_tasa_cambio para calcular la conversión.
  • main():
    Esta función es el punto de entrada del programa. Solicita al usuario las monedas y la cantidad a convertir, llama a convertir_moneda y muestra el resultado. Incluye manejo de errores para la entrada del usuario (asegurándose de que la cantidad sea un número válido).
  • if __name__ == "__main__"::
    Asegura que la función main() se ejecute solo cuando el script se ejecuta directamente (no cuando se importa como un módulo).

Consideraciones Importantes:

  • API Key: Muchas APIs de tasas de cambio requieren una API key. Asegúrate de obtener una y agregarla en la solicitud a la API.
  • Manejo de Errores: El código incluye manejo básico de errores, pero se puede mejorar. Por ejemplo, podrías añadir reintentos en caso de fallos temporales de la red.
  • Validación de Entrada: Se valida que la cantidad sea un número, pero se podría validar también que las monedas sean códigos válidos (ej: de una lista predefinida).
  • Gratuidad de APIs: Ten en cuenta que muchas APIs de tasas de cambio gratuitas tienen limitaciones en el número de solicitudes por minuto o por día.

Indice de la guia de proyectos

50 Proyectos de Programacion

Proyecto anterior

Generador de Contraseñas Aleatorias