Conversor de Monedas en Python
Segundo proyecto de la guia 50 Proyectos de Programacion para Practicar y Aprender. Proyectos para Principiantes
Este es un conversor de monedas que permite convertir entre diferentes divisas utilizando tasas de cambio definidas.
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()
obtener_tasa_cambio(moneda_origen, moneda_destino):try para que coincida con el formato de la respuesta de la API que elijas.convertir_moneda(cantidad, moneda_origen, moneda_destino):obtener_tasa_cambio para calcular la conversión.main():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__"::main() se ejecute solo cuando el script se ejecuta directamente (no cuando se importa como un módulo).Indice de la guia de proyectos
Proyecto anterior