Conversor de Monedas en Python

Enlace Patrocinado
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
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 usuarioSegundo 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 bloquetrypara 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 utilizaobtener_tasa_cambiopara 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 aconvertir_moneday 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ónmain()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
Proyecto anterior